You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ma...@apache.org on 2016/02/01 10:43:00 UTC
[17/52] [abbrv] [partial] incubator-fineract git commit: deleted
initial code
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/dependencies.gradle
----------------------------------------------------------------------
diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle
deleted file mode 100644
index e40a330..0000000
--- a/fineract-provider/dependencies.gradle
+++ /dev/null
@@ -1,80 +0,0 @@
-dependencies {
- def tomcatVersion = '7.0.54'
- tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
- "org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}" // NOT tomcat-embed-logging-juli (http://stackoverflow.com/questions/23963049/classcircularityerror-java-util-logging-logrecord-running-gradle-webapp-with-ja)
- tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
- exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
- }
- tomcat "org.apache.tomcat:tomcat-dbcp:${tomcatVersion}"
-
- providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
-
- providedCompile(
-// [group: 'javax.servlet', name: 'servlet-api', version: '2.5'],
- )
-
- compile(
- // [group: 'ch.vorburger.mariaDB4j', name: 'mariaDB4j', version: '2.1.3'],
-
- [group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion],
- [group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion],
- [group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: springBootVersion],
-
- [group: 'org.springframework', name: 'spring-context-support', version: springVersion],
-
- [group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: springOauthVersion],
-
- [group: 'javax.ws.rs', name: 'jsr311-api', version: '1.1.1'],
- [group: 'com.sun.jersey', name: 'jersey-core', version: jerseyVersion],
- [group: 'com.sun.jersey', name: 'jersey-servlet', version: jerseyVersion],
- [group: 'com.sun.jersey', name: 'jersey-server', version: jerseyVersion],
- [group: 'com.sun.jersey', name: 'jersey-json', version: jerseyVersion],
- [group: 'com.sun.jersey.contribs', name: 'jersey-spring', version: jerseyVersion],
- [group: 'com.sun.jersey.contribs', name: 'jersey-multipart', version: jerseyVersion],
-
- [group: 'com.squareup.retrofit', name: 'retrofit', version: '1.6.1'],
- [group: 'com.squareup.okhttp', name: 'okhttp', version: '2.0.0'],
- [group: 'com.squareup.okhttp', name: 'okhttp-urlconnection', version: '2.0.0'],
-
-
- [group: 'com.google.code.gson', name: 'gson', version: '2.2.4'],
- [group: 'com.google.guava', name: 'guava', version: '15.0'],
-
- [group: 'joda-time', name: 'joda-time', version: '2.4'],
- [group: 'net.sourceforge.javacsv', name: 'javacsv', version: '2.0'],
- [group: 'org.apache.commons', name: 'commons-email', version: '1.3.3'],
- [group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'],
-
- // no slf4j & logback here (anymore), as spring-boot-starter-logging already brings this now, better assembled (log4j-over-slf4j was originally forgotten here)
-
- [group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'],
- // [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion],
-
-
- [group: 'org.apache.poi',name: 'poi', version: '3.9'],
- [group: 'org.apache.poi',name: 'poi-ooxml', version: '3.9'],
- [group: 'org.apache.poi',name: 'poi-ooxml-schemas', version: '3.9'],
-
- [group: 'com.lowagie', name: 'itext', version: '2.1.7'],
- [group: 'com.lowagie', name: 'itext-rtf', version: '2.1.7'],
- [group: 'org.mnode.ical4j', name: 'ical4j', version: '1.0.4'],
- [group: 'com.googlecode.flyway', name: 'flyway-core', version: '2.1.1'],
- [group: 'org.quartz-scheduler', name: 'quartz', version: '2.1.7'],
- [group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.2.1'],
- [group: 'net.sf.ehcache', name: 'ehcache', version: '2.7.2'],
- [group: 'com.github.spullara.mustache.java', name: 'compiler', version: '0.8.12'],
- [group: 'com.jayway.jsonpath', name: 'json-path', version: '0.9.1'],
-
- // Although fineract (at the time of writing) doesn't have any compile time dep. on this,
- // it's useful to have this for the Spring Boot TestRestTemplate http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-rest-templates-test-utility
- [group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.5'],
- // Once we've switched to Java 8 this dep can be removed.
- [group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.0']
- )
- testCompile 'junit:junit:4.11',
- 'junit:junit-dep:4.11',
- 'org.mockito:mockito-core:1.9.5',
- 'com.jayway.restassured:rest-assured:2.3.3',
- [group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion]
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/dev-dependencies.gradle
----------------------------------------------------------------------
diff --git a/fineract-provider/dev-dependencies.gradle b/fineract-provider/dev-dependencies.gradle
deleted file mode 100644
index 83039f7..0000000
--- a/fineract-provider/dev-dependencies.gradle
+++ /dev/null
@@ -1,79 +0,0 @@
-dependencies {
- def tomcatVersion = '7.0.54'
- tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
- "org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}" // NOT tomcat-embed-logging-juli (http://stackoverflow.com/questions/23963049/classcircularityerror-java-util-logging-logrecord-running-gradle-webapp-with-ja)
- tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
- exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
- }
- tomcat "org.apache.tomcat:tomcat-dbcp:${tomcatVersion}"
-
- providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
-
- providedCompile(
-// [group: 'javax.servlet', name: 'servlet-api', version: '2.5'],
- )
-
- compile(
- [group: 'ch.vorburger.mariaDB4j', name: 'mariaDB4j', version: '2.1.3'],
-
- [group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion],
- [group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion],
- [group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: springBootVersion],
-
- [group: 'org.springframework', name: 'spring-context-support', version: springVersion],
- [group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: springOauthVersion],
-
- [group: 'javax.ws.rs', name: 'jsr311-api', version: '1.1.1'],
- [group: 'com.sun.jersey', name: 'jersey-core', version: jerseyVersion],
- [group: 'com.sun.jersey', name: 'jersey-servlet', version: jerseyVersion],
- [group: 'com.sun.jersey', name: 'jersey-server', version: jerseyVersion],
- [group: 'com.sun.jersey', name: 'jersey-json', version: jerseyVersion],
- [group: 'com.sun.jersey.contribs', name: 'jersey-spring', version: jerseyVersion],
- [group: 'com.sun.jersey.contribs', name: 'jersey-multipart', version: jerseyVersion],
-
- [group: 'com.squareup.retrofit', name: 'retrofit', version: '1.6.1'],
- [group: 'com.squareup.okhttp', name: 'okhttp', version: '2.0.0'],
- [group: 'com.squareup.okhttp', name: 'okhttp-urlconnection', version: '2.0.0'],
-
-
- [group: 'com.google.code.gson', name: 'gson', version: '2.2.4'],
- [group: 'com.google.guava', name: 'guava', version: '15.0'],
-
- [group: 'joda-time', name: 'joda-time', version: '2.4'],
- [group: 'net.sourceforge.javacsv', name: 'javacsv', version: '2.0'],
- [group: 'org.apache.commons', name: 'commons-email', version: '1.3.3'],
- [group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'],
-
- // no slf4j & logback here (anymore), as spring-boot-starter-logging already brings this now, better assembled (log4j-over-slf4j was originally forgotten here)
-
- [group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'],
- [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion],
-
-
- [group: 'org.apache.poi',name: 'poi', version: '3.9'],
- [group: 'org.apache.poi',name: 'poi-ooxml', version: '3.9'],
- [group: 'org.apache.poi',name: 'poi-ooxml-schemas', version: '3.9'],
-
- [group: 'com.lowagie', name: 'itext', version: '2.1.7'],
- [group: 'com.lowagie', name: 'itext-rtf', version: '2.1.7'],
- [group: 'org.mnode.ical4j', name: 'ical4j', version: '1.0.4'],
- [group: 'com.googlecode.flyway', name: 'flyway-core', version: '2.1.1'],
- [group: 'org.quartz-scheduler', name: 'quartz', version: '2.1.7'],
- [group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.2.1'],
- [group: 'net.sf.ehcache', name: 'ehcache', version: '2.7.2'],
- [group: 'com.github.spullara.mustache.java', name: 'compiler', version: '0.8.12'],
- [group: 'com.jayway.jsonpath', name: 'json-path', version: '0.9.1'],
-
- // Although fineract (at the time of writing) doesn't have any compile time dep. on this,
- // it's useful to have this for the Spring Boot TestRestTemplate http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-rest-templates-test-utility
- [group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.5'],
- // Once we've switched to Java 8 this dep can be removed.
- [group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.0']
- )
- testCompile 'junit:junit:4.11',
- 'junit:junit-dep:4.11',
- 'org.mockito:mockito-core:1.9.5',
- 'com.jayway.restassured:rest-assured:2.3.3',
- [group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion]
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/gradle.properties
----------------------------------------------------------------------
diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties
deleted file mode 100644
index 706f6ee..0000000
--- a/fineract-provider/gradle.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-releaseVersion=16.01.2.RELEASE
-
-
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/gradlew
----------------------------------------------------------------------
diff --git a/fineract-provider/gradlew b/fineract-provider/gradlew
deleted file mode 100755
index 210ae59..0000000
--- a/fineract-provider/gradlew
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8005,server=y,suspend=n"
-
-CATALINA_OPTS="-Xms512m -Xmx2048m"
-JAVA_OPTS="-Xms512m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m"
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/gradlew.bat
----------------------------------------------------------------------
diff --git a/fineract-provider/gradlew.bat b/fineract-provider/gradlew.bat
deleted file mode 100644
index 51aaeab..0000000
--- a/fineract-provider/gradlew.bat
+++ /dev/null
@@ -1,93 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8005,server=y,suspend=n
-
-set CATALINA_OPTS=-Xms512m -Xmx512m
-set JAVA_OPTS=-Xms512m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/properties/basicauth/application.properties
----------------------------------------------------------------------
diff --git a/fineract-provider/properties/basicauth/application.properties b/fineract-provider/properties/basicauth/application.properties
deleted file mode 100644
index adbef74..0000000
--- a/fineract-provider/properties/basicauth/application.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-
-spring.profiles.default=basicauth
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/properties/oauth/application.properties
----------------------------------------------------------------------
diff --git a/fineract-provider/properties/oauth/application.properties b/fineract-provider/properties/oauth/application.properties
deleted file mode 100644
index 05ef979..0000000
--- a/fineract-provider/properties/oauth/application.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-
-spring.profiles.default=basicauth
-spring.profiles.active=oauth
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java
deleted file mode 100644
index 97c3fac..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.apache.fineract.integrationtests.common.CenterDomain;
-import org.apache.fineract.integrationtests.common.CenterHelper;
-import org.apache.fineract.integrationtests.common.ClientHelper;
-import org.apache.fineract.integrationtests.common.CommonConstants;
-import org.apache.fineract.integrationtests.common.GroupHelper;
-import org.apache.fineract.integrationtests.common.OfficeHelper;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
-import org.apache.fineract.integrationtests.common.savings.SavingsAccountHelper;
-import org.apache.fineract.integrationtests.common.savings.SavingsProductHelper;
-import org.apache.fineract.integrationtests.common.system.AccountNumberPreferencesHelper;
-import org.apache.fineract.integrationtests.common.system.CodeHelper;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.jayway.restassured.builder.RequestSpecBuilder;
-import com.jayway.restassured.builder.ResponseSpecBuilder;
-import com.jayway.restassured.http.ContentType;
-import com.jayway.restassured.specification.RequestSpecification;
-import com.jayway.restassured.specification.ResponseSpecification;
-
-public class AccountNumberPreferencesTest {
-
- private RequestSpecification requestSpec;
- private ResponseSpecification responseSpec;
- private ResponseSpecification responseValidationError;
- private ResponseSpecification responseNotFoundError;
- private ResponseSpecification responseForbiddenError;
- private Integer clientId;
- private Integer loanProductId;
- private Integer loanId;
- private Integer savingsProductId;
- private Integer savingsId;
- private final String loanPrincipalAmount = "100000.00";
- private final String numberOfRepayments = "12";
- private final String interestRatePerPeriod = "18";
- private final String dateString = "4 September 2014";
- private final String minBalanceForInterestCalculation = null;
- private final String minRequiredBalance = null;
- private final String enforceMinRequiredBalance = "false";
- private LoanTransactionHelper loanTransactionHelper;
- private SavingsAccountHelper savingsAccountHelper;
- private AccountNumberPreferencesHelper accountNumberPreferencesHelper;
- private Integer clientAccountNumberPreferenceId;
- private Integer loanAccountNumberPreferenceId;
- private Integer savingsAccountNumberPreferenceId;
- private Integer groupsAccountNumberPreferenceId;
- private Integer centerAccountNumberPreferenceId;
- private final String MINIMUM_OPENING_BALANCE = "1000.0";
- private final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
- private Boolean isAccountPreferenceSetUp = false;
- private Integer clientTypeCodeId;
- private String clientCodeValueName;
- private Integer clientCodeValueId;
- private final String clientTypeName = "CLIENT_TYPE";
- private final String officeName = "OFFICE_NAME";
- private final String loanShortName = "LOAN_PRODUCT_SHORT_NAME";
- private final String savingsShortName = "SAVINGS_PRODUCT_SHORT_NAME";
- private Integer groupID;
- private Integer centerId;
- private String groupAccountNo;
-
- @Before
- public void setup() {
- Utils.initializeRESTAssured();
- this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
- this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
- this.responseValidationError = new ResponseSpecBuilder().expectStatusCode(400).build();
- this.responseNotFoundError = new ResponseSpecBuilder().expectStatusCode(404).build();
- this.responseForbiddenError = new ResponseSpecBuilder().expectStatusCode(403).build();
- this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
- this.accountNumberPreferencesHelper = new AccountNumberPreferencesHelper(this.requestSpec, this.responseSpec);
-
- }
-
- @Test
- public void testAccountNumberPreferences() {
-
- /* Create Loan and Savings Product */
- this.createLoanAndSavingsProduct();
-
- /* Ensure no account number preferences are present in the system */
- this.deleteAllAccountNumberPreferences();
-
- /*
- * Validate the default account number generation rules for clients,
- * loans and savings accounts.
- */
- this.validateDefaultAccountNumberGeneration();
-
- /* Create and Validate account number preferences */
- this.createAccountNumberPreference();
-
- /*
- * Validate account number preference rules apply to Clients,Loans and
- * Saving Accounts
- */
- this.validateAccountNumberGenerationWithPreferences();
-
- /* Validate account number preferences Updation */
- this.updateAccountNumberPreference();
-
- /*
- * Validate account number preference rules apply to Clients,Loans and
- * Saving Accounts after Updation
- */
- this.validateAccountNumberGenerationWithPreferences();
-
- /* Delete all account number preferences */
- this.deleteAllAccountNumberPreferences();
-
- }
-
- private void createLoanAndSavingsProduct() {
- this.createLoanProduct();
- this.createSavingsProduct();
- }
-
- private void deleteAllAccountNumberPreferences() {
- ArrayList<HashMap<String, Object>> preferenceIds = this.accountNumberPreferencesHelper.getAllAccountNumberPreferences();
- /* Deletion of valid account preference ID */
- for (HashMap<String, Object> preferenceId : preferenceIds) {
- Integer id = (Integer) preferenceId.get("id");
- HashMap<String, Object> delResponse = this.accountNumberPreferencesHelper.deleteAccountNumberPreference(id, this.responseSpec,
- "");
- System.out.println("Successfully deleted account number preference (ID: " + delResponse.get("resourceId") + ")");
- }
- /* Deletion of invalid account preference ID should fail */
- System.out
- .println("---------------------------------DELETING ACCOUNT NUMBER PREFERENCE WITH INVALID ID------------------------------------------");
-
- HashMap<String, Object> deletionError = this.accountNumberPreferencesHelper.deleteAccountNumberPreference(10,
- this.responseNotFoundError, "");
- Assert.assertEquals("error.msg.resource.not.found", deletionError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- }
-
- private void validateDefaultAccountNumberGeneration() {
- this.createAndValidateClientEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateLoanEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateSavingsEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateGroup(this.isAccountPreferenceSetUp);
- this.createAndValidateCenter(this.isAccountPreferenceSetUp);
- }
-
- private void validateAccountNumberGenerationWithPreferences() {
- this.isAccountPreferenceSetUp = true;
- this.createAndValidateClientEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateLoanEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateSavingsEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateGroup(this.isAccountPreferenceSetUp);
- this.createAndValidateCenter(this.isAccountPreferenceSetUp);
- }
-
- private void createAccountNumberPreference() {
- this.clientAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createClientAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Client (ID: " + this.clientAccountNumberPreferenceId);
-
- this.loanAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createLoanAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Loan (ID: " + this.loanAccountNumberPreferenceId);
-
- this.savingsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createSavingsAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Savings (ID: " + this.savingsAccountNumberPreferenceId);
-
- this.groupsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createGroupsAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Groups (ID: " + this.groupsAccountNumberPreferenceId);
-
- this.centerAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createCenterAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Center (ID: " + this.centerAccountNumberPreferenceId);
-
- this.accountNumberPreferencesHelper.verifyCreationOfAccountNumberPreferences(this.clientAccountNumberPreferenceId,
- this.loanAccountNumberPreferenceId, this.savingsAccountNumberPreferenceId, this.groupsAccountNumberPreferenceId,
- this.centerAccountNumberPreferenceId, this.responseSpec, this.requestSpec);
-
- this.createAccountNumberPreferenceInvalidData("1000", "1001");
- this.createAccountNumberPreferenceDuplicateData("1", "101");
-
- }
-
- private void createAccountNumberPreferenceDuplicateData(final String accountType, final String prefixType) {
- /* Creating account Preference with duplicate data should fail */
- System.out
- .println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH DUPLICATE DATA------------------------------------------");
-
- HashMap<String, Object> creationError = this.accountNumberPreferencesHelper.createAccountNumberPreferenceWithInvalidData(
- this.responseForbiddenError, accountType, prefixType, "");
-
- Assert.assertEquals("error.msg.account.number.format.duplicate.account.type",
- creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
- }
-
- private void createAccountNumberPreferenceInvalidData(final String accountType, final String prefixType) {
-
- /* Creating account Preference with invalid data should fail */
- System.out
- .println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
-
- HashMap<String, Object> creationError = this.accountNumberPreferencesHelper.createAccountNumberPreferenceWithInvalidData(
- this.responseValidationError, accountType, prefixType, "");
-
- if (creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE).equals(
- "validation.msg.accountNumberFormat.accountType.is.not.within.expected.range")) {
- Assert.assertEquals("validation.msg.accountNumberFormat.accountType.is.not.within.expected.range",
- creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- } else if (creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE).equals(
- "validation.msg.accountNumberFormat.prefixType.is.not.one.of.expected.enumerations")) {
- Assert.assertEquals("validation.msg.accountNumberFormat.prefixType.is.not.one.of.expected.enumerations",
- creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- }
- }
-
- private void updateAccountNumberPreference() {
- HashMap<String, Object> accountNumberPreferences = this.accountNumberPreferencesHelper.updateAccountNumberPreference(
- this.clientAccountNumberPreferenceId, "101", this.responseSpec, "");
-
- System.out.println("--------------------------UPDATION SUCCESSFUL FOR ACCOUNT NUMBER PREFERENCE ID "
- + accountNumberPreferences.get("resourceId"));
-
- this.accountNumberPreferencesHelper.verifyUpdationOfAccountNumberPreferences((Integer) accountNumberPreferences.get("resourceId"),
- this.responseSpec, this.requestSpec);
-
- /* Update invalid account preference id should fail */
- System.out
- .println("---------------------------------UPDATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
-
- /* Invalid Account Type */
- HashMap<String, Object> updationError = this.accountNumberPreferencesHelper.updateAccountNumberPreference(9999, "101",
- this.responseNotFoundError, "");
- if (updationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE).equals("error.msg.resource.not.found")) {
- Assert.assertEquals("error.msg.resource.not.found", updationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- }
- /* Invalid Prefix Type */
- HashMap<String, Object> updationError1 = this.accountNumberPreferencesHelper.updateAccountNumberPreference(
- this.clientAccountNumberPreferenceId, "103", this.responseValidationError, "");
-
- Assert.assertEquals("validation.msg.validation.errors.exist", updationError1.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
- }
-
- private void createAndValidateClientEntity(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
- if (isAccountPreferenceSetUp) {
- this.createAndValidateClientBasedOnAccountPreference();
- } else {
- this.createAndValidateClientWithoutAccountPreference();
- }
- }
-
- private void createAndValidateGroup(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
- this.groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec);
- GroupHelper.verifyGroupCreatedOnServer(this.requestSpec, this.responseSpec, groupID);
-
- this.groupID = GroupHelper.activateGroup(this.requestSpec, this.responseSpec, groupID.toString());
- GroupHelper.verifyGroupActivatedOnServer(this.requestSpec, this.responseSpec, groupID, true);
-
- final String GROUP_URL = "/fineract-provider/api/v1/groups/" + this.groupID + "?" + Utils.TENANT_IDENTIFIER;
- this.groupAccountNo = Utils.performServerGet(requestSpec, responseSpec, GROUP_URL, "accountNo");
-
- if (isAccountPreferenceSetUp) {
- String groupsPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.groupsAccountNumberPreferenceId, "prefixType.value");
-
- if (groupsPrefixName.equals(this.officeName)) {
-
- final String groupOfficeName = Utils.performServerGet(requestSpec, responseSpec, GROUP_URL, "officeName");
-
- this.validateAccountNumberLengthAndStartsWithPrefix(this.groupAccountNo, groupOfficeName);
- }
- } else {
- validateAccountNumberLengthAndStartsWithPrefix(this.groupAccountNo, null);
- }
- }
-
- private void createAndValidateCenter(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
- Integer officeId = new OfficeHelper(requestSpec, responseSpec).createOffice("01 July 2007");
-
- String name = "CenterCreation" + new Timestamp(new java.util.Date().getTime());
- this.centerId = CenterHelper.createCenter(name, officeId, requestSpec, responseSpec);
- CenterDomain center = CenterHelper.retrieveByID(centerId, requestSpec, responseSpec);
- Assert.assertNotNull(center);
- Assert.assertTrue(center.getName().equals(name));
-
- if (isAccountPreferenceSetUp) {
- String centerPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.centerAccountNumberPreferenceId, "prefixType.value");
- final String CENTER_URL = "/fineract-provider/api/v1/centers/" + this.centerId + "?" + Utils.TENANT_IDENTIFIER;
-
- if (centerPrefixName.equals(this.officeName)) {
- final String centerOfficeName = Utils.performServerGet(requestSpec, responseSpec, CENTER_URL, "officeName");
- this.validateAccountNumberLengthAndStartsWithPrefix(center.getAccountNo(), centerOfficeName);
- }
- } else {
- validateAccountNumberLengthAndStartsWithPrefix(center.getAccountNo(), null);
- }
- }
-
-
- private void createAndValidateClientWithoutAccountPreference() {
- this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
- Assert.assertNotNull(this.clientId);
- String clientAccountNo = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "accountNo");
- validateAccountNumberLengthAndStartsWithPrefix(clientAccountNo, null);
- }
-
- private void createAndValidateClientBasedOnAccountPreference() {
- final String codeName = "ClientType";
- String clientAccountNo = null;
- String clientPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.clientAccountNumberPreferenceId, "prefixType.value");
- if (clientPrefixName.equals(this.clientTypeName)) {
-
- /* Retrieve Code id for the Code "ClientType" */
- HashMap<String, Object> code = CodeHelper.getCodeByName(this.requestSpec, this.responseSpec, codeName);
- this.clientTypeCodeId = (Integer) code.get("id");
-
- /* Retrieve/Create Code Values for the Code "ClientType" */
- HashMap<String, Object> codeValue = CodeHelper.retrieveOrCreateCodeValue(this.clientTypeCodeId, this.requestSpec,
- this.responseSpec);
-
- this.clientCodeValueName = (String) codeValue.get("name");
- this.clientCodeValueId = (Integer) codeValue.get("id");
-
- /* Create Client with Client Type */
- this.clientId = ClientHelper.createClientForAccountPreference(this.requestSpec, this.responseSpec, this.clientCodeValueId,
- "clientId");
-
- Assert.assertNotNull(clientId);
-
- clientAccountNo = (String) ClientHelper.getClient(this.requestSpec, this.responseSpec, this.clientId.toString(), "accountNo");
- this.validateAccountNumberLengthAndStartsWithPrefix(clientAccountNo, this.clientCodeValueName);
-
- } else if (clientPrefixName.equals(this.officeName)) {
- this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
- Assert.assertNotNull(clientId);
- clientAccountNo = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "accountNo");
- String officeName = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "officeName");
- this.validateAccountNumberLengthAndStartsWithPrefix(clientAccountNo, officeName);
- }
- }
-
- private void validateAccountNumberLengthAndStartsWithPrefix(final String accountNumber, final String prefix) {
- if (prefix != null) {
- Assert.assertEquals(accountNumber.length(), prefix.length() + 9);
- Assert.assertTrue(accountNumber.startsWith(prefix));
- } else {
- Assert.assertEquals(accountNumber.length(), 9);
- }
- }
-
- private void createLoanProduct() {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- System.out.println("---------------------------------CREATING LOAN PRODUCT------------------------------------------");
-
- final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(loanPrincipalAmount)
- .withNumberOfRepayments(numberOfRepayments).withinterestRatePerPeriod(interestRatePerPeriod)
- .withInterestRateFrequencyTypeAsYear().build(null);
-
- this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON);
- System.out.println("Successfully created loan product (ID: " + this.loanProductId + ")");
- }
-
- private void createAndValidateLoanEntity(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- System.out.println("---------------------------------NEW LOAN APPLICATION------------------------------------------");
-
- final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(loanPrincipalAmount)
- .withLoanTermFrequency(numberOfRepayments).withLoanTermFrequencyAsMonths().withNumberOfRepayments(numberOfRepayments)
- .withRepaymentEveryAfter("1").withRepaymentFrequencyTypeAsMonths().withAmortizationTypeAsEqualInstallments()
- .withInterestCalculationPeriodTypeAsDays().withInterestRatePerPeriod(interestRatePerPeriod).withLoanTermFrequencyAsMonths()
- .withSubmittedOnDate(dateString).withExpectedDisbursementDate(dateString).withPrincipalGrace("2").withInterestGrace("2")
- .build(this.clientId.toString(), this.loanProductId.toString(), null);
-
- System.out.println("Loan Application :" + loanApplicationJSON);
-
- this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
- String loanAccountNo = (String) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, this.loanId,
- "accountNo");
-
- if (isAccountPreferenceSetUp) {
- String loanPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.loanAccountNumberPreferenceId, "prefixType.value");
- if (loanPrefixName.equals(this.officeName)) {
- String loanOfficeName = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "officeName");
- this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, loanOfficeName);
- } else if (loanPrefixName.equals(this.loanShortName)) {
- String loanShortName = (String) this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec,
- this.loanProductId, "shortName");
- this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, loanShortName);
- }
- System.out.println("SUCCESSFULLY CREATED LOAN APPLICATION BASED ON ACCOUNT PREFERENCES (ID: " + this.loanId + ")");
- } else {
- this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, null);
- System.out.println("SUCCESSFULLY CREATED LOAN APPLICATION (ID: " + loanId + ")");
- }
- }
-
- private void createSavingsProduct() {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
-
- SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
-
- final String savingsProductJSON = savingsProductHelper
- //
- .withInterestCompoundingPeriodTypeAsDaily()
- //
- .withInterestPostingPeriodTypeAsMonthly()
- //
- .withInterestCalculationPeriodTypeAsDailyBalance()
- //
- .withMinBalanceForInterestCalculation(minBalanceForInterestCalculation)
- //
- .withMinRequiredBalance(minRequiredBalance).withEnforceMinRequiredBalance(enforceMinRequiredBalance)
- .withMinimumOpenningBalance(this.MINIMUM_OPENING_BALANCE).build();
- this.savingsProductId = SavingsProductHelper.createSavingsProduct(savingsProductJSON, this.requestSpec, this.responseSpec);
- System.out.println("Sucessfully created savings product (ID: " + this.savingsProductId + ")");
-
- }
-
- private void createAndValidateSavingsEntity(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-
- this.savingsId = this.savingsAccountHelper
- .applyForSavingsApplication(this.clientId, this.savingsProductId, ACCOUNT_TYPE_INDIVIDUAL);
-
- String savingsAccountNo = (String) this.savingsAccountHelper.getSavingsAccountDetail(this.savingsId, "accountNo");
-
- if (isAccountPreferenceSetUp) {
- String savingsPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.savingsAccountNumberPreferenceId, "prefixType.value");
-
- if (savingsPrefixName.equals(this.officeName)) {
- String savingsOfficeName = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(),
- "officeName");
- this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, savingsOfficeName);
- } else if (savingsPrefixName.equals(this.savingsShortName)) {
- String loanShortName = (String) this.savingsAccountHelper.getSavingsAccountDetail(this.savingsId, "shortName");
- this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, loanShortName);
- }
- System.out.println("SUCCESSFULLY CREATED SAVINGS APPLICATION BASED ON ACCOUNT PREFERENCES (ID: " + this.loanId + ")");
- } else {
- this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, null);
- System.out.println("SUCCESSFULLY CREATED SAVINGS APPLICATION (ID: " + this.savingsId + ")");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java
deleted file mode 100644
index 01399c2..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.fineract.integrationtests.common.ClientHelper;
-import org.apache.fineract.integrationtests.common.CommonConstants;
-import org.apache.fineract.integrationtests.common.OfficeHelper;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.fineract.integrationtests.common.accounting.Account;
-import org.apache.fineract.integrationtests.common.accounting.AccountHelper;
-import org.apache.fineract.integrationtests.common.accounting.FinancialActivityAccountHelper;
-import org.apache.fineract.integrationtests.common.accounting.JournalEntry;
-import org.apache.fineract.integrationtests.common.accounting.JournalEntryHelper;
-import org.apache.fineract.integrationtests.common.accounting.Account.AccountType;
-import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
-import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
-import org.apache.fineract.integrationtests.common.savings.AccountTransferHelper;
-import org.apache.fineract.integrationtests.common.savings.SavingsAccountHelper;
-import org.apache.fineract.integrationtests.common.savings.SavingsProductHelper;
-import org.apache.fineract.integrationtests.common.savings.SavingsStatusChecker;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.jayway.restassured.builder.RequestSpecBuilder;
-import com.jayway.restassured.builder.ResponseSpecBuilder;
-import com.jayway.restassured.http.ContentType;
-import com.jayway.restassured.specification.RequestSpecification;
-import com.jayway.restassured.specification.ResponseSpecification;
-
-/**
- * JUnit Test Cases for Account Transfer for.
- */
-@SuppressWarnings({ "rawtypes", "unused" })
-public class AccountTransferTest {
-
- public static final String MINIMUM_OPENING_BALANCE = "30000.0";
- public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
- public static final String ACCOUNT_TRANSFER_AMOUNT = "15000.0";
- public static final String ACCOUNT_TRANSFER_AMOUNT_ADJUST = "3000.0";
- public static final String FROM_LOAN_ACCOUNT_TYPE = "1";
- public static final String FROM_SAVINGS_ACCOUNT_TYPE = "2";
- public static final String TO_LOAN_ACCOUNT_TYPE = "1";
- public static final String TO_SAVINGS_ACCOUNT_TYPE = "2";
-
- public static final String LOAN_APPROVAL_DATE = "01 March 2013";
- public static final String LOAN_APPROVAL_DATE_PLUS_ONE = "02 March 2013";
- public static final String LOAN_DISBURSAL_DATE = "01 March 2013";
-
- private ResponseSpecification responseSpec;
- private RequestSpecification requestSpec;
- private SavingsAccountHelper savingsAccountHelper;
- private AccountTransferHelper accountTransferHelper;
- private LoanTransactionHelper loanTransactionHelper;
- private AccountHelper accountHelper;
- private JournalEntryHelper journalEntryHelper;
-
- Float TRANSFER_AMOUNT = new Float(ACCOUNT_TRANSFER_AMOUNT);
- Float TRANSFER_AMOUNT_ADJUST = new Float(ACCOUNT_TRANSFER_AMOUNT_ADJUST);
-
- private FinancialActivityAccountHelper financialActivityAccountHelper;
- private Integer financialActivityAccountId;
- private Account liabilityTransferAccount;
-
- @Before
- public void setup() {
- Utils.initializeRESTAssured();
- this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
- this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
- this.accountHelper = new AccountHelper(this.requestSpec, this.responseSpec);
- this.journalEntryHelper = new JournalEntryHelper(this.requestSpec, this.responseSpec);
- this.financialActivityAccountHelper = new FinancialActivityAccountHelper(this.requestSpec);
-
- List<HashMap> financialActivities = this.financialActivityAccountHelper.getAllFinancialActivityAccounts(this.responseSpec);
- if (financialActivities.isEmpty()) {
- /** Setup liability transfer account **/
- /** Create a Liability and an Asset Transfer Account **/
- liabilityTransferAccount = accountHelper.createLiabilityAccount();
- Assert.assertNotNull(liabilityTransferAccount);
-
- /*** Create A Financial Activity to Account Mapping **/
- financialActivityAccountId = (Integer) financialActivityAccountHelper.createFinancialActivityAccount(
- FinancialActivityAccountsTest.liabilityTransferFinancialActivityId, liabilityTransferAccount.getAccountID(),
- responseSpec, CommonConstants.RESPONSE_RESOURCE_ID);
- Assert.assertNotNull(financialActivityAccountId);
- } else {
- for (HashMap financialActivity : financialActivities) {
- HashMap financialActivityData = (HashMap) financialActivity.get("financialActivityData");
- if (financialActivityData.get("id").equals(FinancialActivityAccountsTest.liabilityTransferFinancialActivityId)) {
- HashMap glAccountData = (HashMap) financialActivity.get("glAccountData");
- liabilityTransferAccount = new Account((Integer) glAccountData.get("id"), AccountType.LIABILITY);
- financialActivityAccountId = (Integer) financialActivity.get("id");
- break;
- }
- }
- }
- }
-
- /**
- * Delete the Liability transfer account
- */
- @After
- public void tearDown() {
- Integer deletedFinancialActivityAccountId = financialActivityAccountHelper.deleteFinancialActivityAccount(
- financialActivityAccountId, responseSpec, CommonConstants.RESPONSE_RESOURCE_ID);
- Assert.assertNotNull(deletedFinancialActivityAccountId);
- Assert.assertEquals(financialActivityAccountId, deletedFinancialActivityAccountId);
- }
-
- @Test
- public void testFromSavingsToSavingsAccountTransfer() {
- this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
- this.accountTransferHelper = new AccountTransferHelper(this.requestSpec, this.responseSpec);
-
- final Account assetAccount = this.accountHelper.createAssetAccount();
- final Account incomeAccount = this.accountHelper.createIncomeAccount();
- final Account expenseAccount = this.accountHelper.createExpenseAccount();
- final Account liabilityAccount = this.accountHelper.createLiabilityAccount();
-
- OfficeHelper officeHelper = new OfficeHelper(this.requestSpec, this.responseSpec);
- Integer toOfficeId = officeHelper.createOffice("01 January 2011");
- Assert.assertNotNull(toOfficeId);
-
- // Creating Savings Account to which fund to be Transferred
- final Integer toClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2011",
- String.valueOf(toOfficeId));
- Assert.assertNotNull(toClientID);
-
- final Integer toSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, assetAccount,
- incomeAccount, expenseAccount, liabilityAccount);
- Assert.assertNotNull(toSavingsProductID);
-
- final Integer toSavingsID = this.savingsAccountHelper.applyForSavingsApplication(toClientID, toSavingsProductID,
- ACCOUNT_TYPE_INDIVIDUAL);
- Assert.assertNotNull(toSavingsProductID);
-
- HashMap toSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, toSavingsID);
- SavingsStatusChecker.verifySavingsIsPending(toSavingsStatusHashMap);
-
- toSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(toSavingsID);
- SavingsStatusChecker.verifySavingsIsApproved(toSavingsStatusHashMap);
-
- toSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(toSavingsID);
- SavingsStatusChecker.verifySavingsIsActive(toSavingsStatusHashMap);
-
- final HashMap toSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(toSavingsID);
-
- Integer fromOfficeId = officeHelper.createOffice("01 January 2011");
- Assert.assertNotNull(fromOfficeId);
-
- // Creating Savings Account from which the Fund has to be Transferred
- final Integer fromClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2011",
- String.valueOf(fromOfficeId));
- Assert.assertNotNull(fromClientID);
-
- final Integer fromSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE,
- assetAccount, incomeAccount, expenseAccount, liabilityAccount);
- Assert.assertNotNull(fromSavingsProductID);
-
- final Integer fromSavingsID = this.savingsAccountHelper.applyForSavingsApplication(fromClientID, fromSavingsProductID,
- ACCOUNT_TYPE_INDIVIDUAL);
- Assert.assertNotNull(fromSavingsID);
-
- HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, fromSavingsID);
- SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap);
-
- fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsID);
- SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap);
-
- fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsID);
- SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap);
-
- final HashMap fromSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(fromSavingsID);
-
- Float fromSavingsBalance = new Float(MINIMUM_OPENING_BALANCE);
- Float toSavingsBalance = new Float(MINIMUM_OPENING_BALANCE);
-
- this.accountTransferHelper.accountTransfer(fromClientID, fromSavingsID, fromClientID, toSavingsID, FROM_SAVINGS_ACCOUNT_TYPE,
- TO_SAVINGS_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT);
-
- fromSavingsBalance -= new Float(ACCOUNT_TRANSFER_AMOUNT);
- toSavingsBalance += new Float(ACCOUNT_TRANSFER_AMOUNT);
-
- HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID);
- assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance,
- fromSavingsSummaryAfter.get("accountBalance"));
-
- HashMap toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(toSavingsID);
- assertEquals("Verifying To Savings Account Balance after Account Transfer", toSavingsBalance,
- toSavingsSummaryAfter.get("accountBalance"));
- final JournalEntry[] office1LiabilityEntries = { new JournalEntry(new Float(ACCOUNT_TRANSFER_AMOUNT),
- JournalEntry.TransactionType.CREDIT) };
- final JournalEntry[] office2LiabilityEntries = { new JournalEntry(new Float(ACCOUNT_TRANSFER_AMOUNT),
- JournalEntry.TransactionType.DEBIT) };
-
- this.journalEntryHelper.checkJournalEntryForLiabilityAccount(fromOfficeId, liabilityTransferAccount,
- AccountTransferHelper.ACCOUNT_TRANSFER_DATE, office1LiabilityEntries);
- this.journalEntryHelper.checkJournalEntryForLiabilityAccount(toOfficeId, liabilityTransferAccount,
- AccountTransferHelper.ACCOUNT_TRANSFER_DATE, office2LiabilityEntries);
-
- }
-
- @Test
- public void testFromSavingsToLoanAccountTransfer() {
- final Account assetAccount = this.accountHelper.createAssetAccount();
- final Account incomeAccount = this.accountHelper.createIncomeAccount();
- final Account expenseAccount = this.accountHelper.createExpenseAccount();
- final Account liabilityAccount = this.accountHelper.createLiabilityAccount();
-
- final Account loanAssetAccount = this.accountHelper.createAssetAccount();
- final Account loanIncomeAccount = this.accountHelper.createIncomeAccount();
- final Account loanExpenseAccount = this.accountHelper.createExpenseAccount();
- final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
-
- this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
- this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
- this.accountTransferHelper = new AccountTransferHelper(this.requestSpec, this.responseSpec);
-
- OfficeHelper officeHelper = new OfficeHelper(this.requestSpec, this.responseSpec);
- Integer toOfficeId = officeHelper.createOffice("01 January 2011");
- Assert.assertNotNull(toOfficeId);
-
- // Creating Loan Account to which fund to be Transferred
- final Integer toClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2011",
- String.valueOf(toOfficeId));
- Assert.assertNotNull(toClientID);
-
- Account toTransferAccount = accountHelper.createLiabilityAccount();
- Assert.assertNotNull(toTransferAccount);
-
- final Integer toLoanProductID = createLoanProduct(loanAssetAccount, loanIncomeAccount, loanExpenseAccount, overpaymentAccount);
- Assert.assertNotNull(toLoanProductID);
-
- final Integer toLoanID = applyForLoanApplication(toClientID, toLoanProductID);
- Assert.assertNotNull(toLoanID);
-
- HashMap toLoanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, toLoanID);
- LoanStatusChecker.verifyLoanIsPending(toLoanStatusHashMap);
-
- toLoanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_APPROVAL_DATE, toLoanID);
- LoanStatusChecker.verifyLoanIsApproved(toLoanStatusHashMap);
-
- toLoanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSAL_DATE, toLoanID);
- LoanStatusChecker.verifyLoanIsActive(toLoanStatusHashMap);
-
- Integer fromOfficeId = officeHelper.createOffice("01 January 2011");
- Assert.assertNotNull(fromOfficeId);
-
- // Creating Savings Account from which the Fund has to be Transferred
- final Integer fromClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2011",
- String.valueOf(fromOfficeId));
- Assert.assertNotNull(fromClientID);
-
- final Integer fromSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE,
- assetAccount, incomeAccount, expenseAccount, liabilityAccount);
- Assert.assertNotNull(fromSavingsProductID);
-
- final Integer fromSavingsID = this.savingsAccountHelper.applyForSavingsApplication(fromClientID, fromSavingsProductID,
- ACCOUNT_TYPE_INDIVIDUAL);
- Assert.assertNotNull(fromSavingsID);
-
- HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, fromSavingsID);
- SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap);
-
- fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsID);
- SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap);
-
- fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsID);
- SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap);
-
- final HashMap fromSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(fromSavingsID);
-
- Float fromSavingsBalance = new Float(MINIMUM_OPENING_BALANCE);
-
- this.accountTransferHelper.accountTransfer(fromClientID, fromSavingsID, toClientID, toLoanID, FROM_SAVINGS_ACCOUNT_TYPE,
- TO_LOAN_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT_ADJUST);
-
- fromSavingsBalance -= TRANSFER_AMOUNT_ADJUST;
-
- HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID);
- assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance,
- fromSavingsSummaryAfter.get("accountBalance"));
-
- HashMap toLoanSummaryAfter = this.loanTransactionHelper.getLoanSummary(requestSpec, responseSpec, toLoanID);
- assertEquals("Verifying To Loan Repayment Amount after Account Transfer", TRANSFER_AMOUNT_ADJUST,
- toLoanSummaryAfter.get("totalRepayment"));
-
- final JournalEntry[] office1LiabilityEntries = { new JournalEntry(new Float(ACCOUNT_TRANSFER_AMOUNT_ADJUST),
- JournalEntry.TransactionType.CREDIT) };
- final JournalEntry[] office2LiabilityEntries = { new JournalEntry(new Float(ACCOUNT_TRANSFER_AMOUNT_ADJUST),
- JournalEntry.TransactionType.DEBIT) };
-
- this.journalEntryHelper.checkJournalEntryForLiabilityAccount(fromOfficeId, liabilityTransferAccount,
- AccountTransferHelper.ACCOUNT_TRANSFER_DATE, office1LiabilityEntries);
- this.journalEntryHelper.checkJournalEntryForLiabilityAccount(toOfficeId, liabilityTransferAccount,
- AccountTransferHelper.ACCOUNT_TRANSFER_DATE, office2LiabilityEntries);
- }
-
- @Test
- public void testFromLoanToSavingsAccountTransfer() {
- final Account assetAccount = this.accountHelper.createAssetAccount();
- final Account incomeAccount = this.accountHelper.createIncomeAccount();
- final Account expenseAccount = this.accountHelper.createExpenseAccount();
- final Account liabilityAccount = this.accountHelper.createLiabilityAccount();
-
- final Account loanAssetAccount = this.accountHelper.createAssetAccount();
- final Account loanIncomeAccount = this.accountHelper.createIncomeAccount();
- final Account loanExpenseAccount = this.accountHelper.createExpenseAccount();
- final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
-
- this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
- this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
- this.accountTransferHelper = new AccountTransferHelper(this.requestSpec, this.responseSpec);
-
- OfficeHelper officeHelper = new OfficeHelper(this.requestSpec, this.responseSpec);
- Integer toOfficeId = officeHelper.createOffice("01 January 2011");
- Assert.assertNotNull(toOfficeId);
-
- // Creating Loan Account to which fund to be Transferred
- final Integer toClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2011",
- String.valueOf(toOfficeId));
- Assert.assertNotNull(toClientID);
-
- final Integer toSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, assetAccount,
- incomeAccount, expenseAccount, liabilityAccount);
- Assert.assertNotNull(toSavingsProductID);
-
- final Integer toSavingsID = this.savingsAccountHelper.applyForSavingsApplication(toClientID, toSavingsProductID,
- ACCOUNT_TYPE_INDIVIDUAL);
- Assert.assertNotNull(toSavingsID);
-
- HashMap toSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, toSavingsID);
- SavingsStatusChecker.verifySavingsIsPending(toSavingsStatusHashMap);
-
- toSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(toSavingsID);
- SavingsStatusChecker.verifySavingsIsApproved(toSavingsStatusHashMap);
-
- toSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(toSavingsID);
- SavingsStatusChecker.verifySavingsIsActive(toSavingsStatusHashMap);
-
- Integer fromOfficeId = officeHelper.createOffice("01 January 2011");
- Assert.assertNotNull(fromOfficeId);
-
- // Creating Savings Account from which the Fund has to be Transferred
- final Integer fromClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2011",
- String.valueOf(fromOfficeId));
- Assert.assertNotNull(fromClientID);
-
- final Integer loanProductID = createLoanProduct(loanAssetAccount, loanIncomeAccount, loanExpenseAccount, overpaymentAccount);
- Assert.assertNotNull(loanProductID);
-
- final Integer loanID = applyForLoanApplication(fromClientID, loanProductID);
- Assert.assertNotNull(loanID);
-
- HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
- LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
- loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_APPROVAL_DATE, loanID);
- LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-
- loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSAL_DATE, loanID);
- LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
-
- final Integer fromSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE,
- assetAccount, incomeAccount, expenseAccount, liabilityAccount);
- Assert.assertNotNull(fromSavingsProductID);
-
- final Integer fromSavingsID = this.savingsAccountHelper.applyForSavingsApplication(fromClientID, fromSavingsProductID,
- ACCOUNT_TYPE_INDIVIDUAL);
- Assert.assertNotNull(fromSavingsID);
-
- HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, fromSavingsID);
- SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap);
-
- fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsID);
- SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap);
-
- fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsID);
- SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap);
-
- final HashMap toSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(toSavingsID);
-
- Float fromSavingsBalance = new Float(MINIMUM_OPENING_BALANCE);
-
- this.accountTransferHelper.accountTransfer(fromClientID, fromSavingsID, fromClientID, loanID, FROM_SAVINGS_ACCOUNT_TYPE,
- TO_LOAN_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT);
-
- fromSavingsBalance -= TRANSFER_AMOUNT;
-
- HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID);
-
- // Verifying fromSavings Account Balance after Account Transfer
- assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance,
- fromSavingsSummaryAfter.get("accountBalance"));
-
- Float toSavingsBalance = new Float(MINIMUM_OPENING_BALANCE);
-
- this.accountTransferHelper.accountTransfer(fromClientID, loanID, toClientID, toSavingsID, FROM_LOAN_ACCOUNT_TYPE,
- TO_SAVINGS_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT_ADJUST);
-
- toSavingsBalance += TRANSFER_AMOUNT_ADJUST;
-
- HashMap toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(toSavingsID);
-
- // Verifying toSavings Account Balance after Account Transfer
- assertEquals("Verifying From Savings Account Balance after Account Transfer", toSavingsBalance,
- toSavingsSummaryAfter.get("accountBalance"));
-
- final JournalEntry[] office1LiabilityEntries = { new JournalEntry(new Float(ACCOUNT_TRANSFER_AMOUNT_ADJUST),
- JournalEntry.TransactionType.CREDIT) };
- final JournalEntry[] office2LiabilityEntries = { new JournalEntry(new Float(ACCOUNT_TRANSFER_AMOUNT_ADJUST),
- JournalEntry.TransactionType.DEBIT) };
-
- this.journalEntryHelper.checkJournalEntryForLiabilityAccount(fromOfficeId, liabilityTransferAccount,
- AccountTransferHelper.ACCOUNT_TRANSFER_DATE, office1LiabilityEntries);
- this.journalEntryHelper.checkJournalEntryForLiabilityAccount(toOfficeId, liabilityTransferAccount,
- AccountTransferHelper.ACCOUNT_TRANSFER_DATE, office2LiabilityEntries);
-
- }
-
- private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final String minOpenningBalance, final Account... accounts) {
- System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
- SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
- final String savingsProductJSON = savingsProductHelper //
- .withInterestCompoundingPeriodTypeAsDaily() //
- .withInterestPostingPeriodTypeAsMonthly() //
- .withInterestCalculationPeriodTypeAsDailyBalance() //
- .withMinimumOpenningBalance(minOpenningBalance).withAccountingRuleAsCashBased(accounts).build();
- return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec);
- }
-
- private Integer createLoanProduct(final Account... accounts) {
- System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
- final String loanProductJSON = new LoanProductTestBuilder() //
- .withPrincipal("8,000.00") //
- .withNumberOfRepayments("4") //
- .withRepaymentAfterEvery("1") //
- .withRepaymentTypeAsMonth() //
- .withinterestRatePerPeriod("1") //
- .withInterestRateFrequencyTypeAsMonths() //
- .withAmortizationTypeAsEqualInstallments() //
- .withInterestTypeAsDecliningBalance() //
- .withAccountingRuleAsCashBased(accounts)//
- .build(null);
- return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
- }
-
- private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) {
- System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
- final String loanApplicationJSON = new LoanApplicationTestBuilder() //
- .withPrincipal("8,000.00") //
- .withLoanTermFrequency("4") //
- .withLoanTermFrequencyAsMonths() //
- .withNumberOfRepayments("4") //
- .withRepaymentEveryAfter("1") //
- .withRepaymentFrequencyTypeAsMonths() //
- .withInterestRatePerPeriod("2") //
- .withAmortizationTypeAsEqualInstallments() //
- .withInterestTypeAsDecliningBalance() //
- .withInterestCalculationPeriodTypeSameAsRepaymentPeriod() //
- .withExpectedDisbursementDate("10 January 2013") //
- .withSubmittedOnDate("10 January 2013") //
- .build(clientID.toString(), loanProductID.toString(), null);
- return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
- }
-}
\ No newline at end of file