diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/FundsIntegrationTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/FundsIntegrationTest.java index 5deac5140..bc78b77a2 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/FundsIntegrationTest.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/FundsIntegrationTest.java @@ -5,8 +5,15 @@ */ package org.mifosplatform.integrationtests; +import static org.junit.Assert.assertEquals; + +import com.google.gson.Gson; +import org.junit.Assert; import org.junit.Before; +import org.junit.Test; import org.mifosplatform.integrationtests.common.Utils; +import org.mifosplatform.integrationtests.common.funds.FundsHelper; +import org.mifosplatform.integrationtests.common.funds.FundsResourceHandler; import com.jayway.restassured.builder.RequestSpecBuilder; import com.jayway.restassured.builder.ResponseSpecBuilder; @@ -14,6 +21,10 @@ import com.jayway.restassured.http.ContentType; import com.jayway.restassured.specification.RequestSpecification; import com.jayway.restassured.specification.ResponseSpecification; +import java.math.BigInteger; +import java.util.HashMap; +import java.util.List; + /** * Funds Integration Test for checking Funds Application. */ @@ -27,7 +38,47 @@ public class FundsIntegrationTest { 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.responseSpec = new ResponseSpecBuilder().build(); + } + + @Test + public void testRetrieveFund() { + FundsHelper fh = FundsHelper.create(Utils.randomNameGenerator("", 10)).build(); + String jsonData = fh.toJSON(); + + final Integer fundID = createFund(jsonData, this.requestSpec, this.responseSpec); + Assert.assertNotNull(fundID); + + jsonData = FundsResourceHandler.retrieveFund(fundID, this.requestSpec, this.responseSpec); + FundsHelper fh2 = FundsHelper.fromJSON(jsonData); + + assertEquals(fh.getName(), fh2.getName()); + } + + @Test + public void testRetrieveAllFunds() { + FundsHelper fh = FundsHelper.create(Utils.randomNameGenerator("", 10)).build(); + String jsonData = fh.toJSON(); + + final Integer fundID = createFund(jsonData, this.requestSpec, this.responseSpec); + Assert.assertNotNull(fundID); + + List list = FundsResourceHandler.retrieveAllFunds(this.requestSpec, this.responseSpec); + Assert.assertNotNull(list); + } + + @Test + public void testFundUnknown() { + String jsonData = FundsResourceHandler.retrieveFund(Integer.MAX_VALUE, this.requestSpec, this.responseSpec); + HashMap map = new Gson().fromJson(jsonData, HashMap.class); + assertEquals(map.get("userMessageGlobalisationCode"), "error.msg.resource.not.found"); + } + + private Integer createFund(final String fundJSON, + final RequestSpecification requestSpec, + final ResponseSpecification responseSpec) { + System.out.println("------------------ CREATING NEW FUND ------------------"); + return FundsResourceHandler.createFund(fundJSON, requestSpec, responseSpec); } } diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsHelper.java index 2fd3f24ec..f4fd4d968 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsHelper.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsHelper.java @@ -24,8 +24,9 @@ public class FundsHelper { } private String name; + private Integer resourceId; - FundsHelper() { + public FundsHelper() { super(); } @@ -38,6 +39,10 @@ public class FundsHelper { return this.name; } + public Integer getResourceID() { + return this.resourceId; + } + public String toJSON() { return new Gson().toJson(this); } @@ -46,7 +51,7 @@ public class FundsHelper { return new Gson().fromJson(jsonData, FundsHelper.class); } - public Builder create(final String name) { + public static Builder create(final String name) { return new Builder(name); } diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsResourceHandler.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsResourceHandler.java index 4c133b20e..c12cd569a 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsResourceHandler.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/funds/FundsResourceHandler.java @@ -5,11 +5,37 @@ */ package org.mifosplatform.integrationtests.common.funds; +import com.google.gson.Gson; +import com.jayway.restassured.specification.RequestSpecification; +import com.jayway.restassured.specification.ResponseSpecification; import org.mifosplatform.integrationtests.common.Utils; +import java.util.HashMap; +import java.util.List; + public class FundsResourceHandler { private static final String FUNDS_URL = "/mifosng-provider/api/v1/funds"; private static final String CREATE_FUNDS_URL = FUNDS_URL + "?" + Utils.TENANT_IDENTIFIER; + public static Integer createFund(final String fundJSON, + final RequestSpecification requestSpec, + final ResponseSpecification responseSpec) { + return Utils.performServerPost(requestSpec, responseSpec, CREATE_FUNDS_URL, fundJSON, "resourceId"); + } + + public static List retrieveAllFunds(final RequestSpecification requestSpec, + final ResponseSpecification responseSpec) { + final String URL = FUNDS_URL + "?" + Utils.TENANT_IDENTIFIER; + return Utils.performServerGet(requestSpec, responseSpec, URL, ""); + } + + public static String retrieveFund(final Integer fundID, + final RequestSpecification requestSpec, + final ResponseSpecification responseSpec) { + final String URL = FUNDS_URL + "/" + fundID + "?" + Utils.TENANT_IDENTIFIER; + HashMap map = Utils.performServerGet(requestSpec, responseSpec, URL, ""); + return new Gson().toJson(map); + } + }