Create test cases to cover funds modifications, covering faulty behaviour

This commit is contained in:
Mohammed Nafees
2014-12-03 14:26:43 +05:30
parent ba04ea535e
commit eb8c7103ae
2 changed files with 70 additions and 4 deletions
@@ -40,6 +40,18 @@ public class FundsIntegrationTest {
this.responseSpec = new ResponseSpecBuilder().build();
}
@Test
public void testCreateFaultyFund() {
FundsHelper fh = FundsHelper
.create(Utils.randomNameGenerator("", 120))
.externalId(Utils.randomNameGenerator("fund-", 120))
.build();
String jsonData = fh.toJSON();
final Long fundID = createFund(jsonData, this.requestSpec, this.responseSpec);
Assert.assertNull(fundID);
}
@Test
public void testRetrieveFund() {
FundsHelper fh = FundsHelper
@@ -82,10 +94,43 @@ public class FundsIntegrationTest {
assertEquals(map.get("userMessageGlobalisationCode"), "error.msg.resource.not.found");
}
@Test
public void testUpdateFund() {
FundsHelper fh = FundsHelper
.create(Utils.randomNameGenerator("", 10))
.externalId(Utils.randomNameGenerator("fund-", 5))
.build();
String jsonData = fh.toJSON();
final Long fundID = createFund(jsonData, this.requestSpec, this.responseSpec);
Assert.assertNotNull(fundID);
String newName = Utils.randomNameGenerator("", 10);
String newExternalId = Utils.randomNameGenerator("fund-", 5);
FundsHelper fh2 = FundsResourceHandler.updateFund(fundID, newName, newExternalId, this.requestSpec, this.responseSpec);
Assert.assertEquals(newName, fh2.getName());
Assert.assertNull(fh2.getExternalId());
}
@Test
public void testUpdateUnknownFund() {
String newName = Utils.randomNameGenerator("", 10);
String newExternalId = Utils.randomNameGenerator("fund-", 5);
FundsHelper fh = FundsResourceHandler.updateFund(Long.MAX_VALUE, newName, newExternalId, this.requestSpec, this.responseSpec);
Assert.assertNull(fh);
}
private Long createFund(final String fundJSON,
final RequestSpecification requestSpec,
final ResponseSpecification responseSpec) {
return new Long(String.valueOf(FundsResourceHandler.createFund(fundJSON, requestSpec, responseSpec)));
String fundId = String.valueOf(FundsResourceHandler.createFund(fundJSON, requestSpec, responseSpec));
if (fundId.equals("null")) {
// Invalid JSON data parameters
return null;
}
return new Long(fundId);
}
}
@@ -29,7 +29,7 @@ public class FundsResourceHandler {
final ResponseSpecification responseSpec) {
final String URL = FUNDS_URL + "?" + Utils.TENANT_IDENTIFIER;
List<HashMap<String, Object>> list = Utils.performServerGet(requestSpec, responseSpec, URL, "");
String jsonData = new Gson().toJson(list);
final String jsonData = new Gson().toJson(list);
return new Gson().fromJson(jsonData, new TypeToken<List<FundsHelper>>(){}.getType());
}
@@ -37,8 +37,29 @@ public class FundsResourceHandler {
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);
final HashMap response = Utils.performServerGet(requestSpec, responseSpec, URL, "");
return new Gson().toJson(response);
}
public static FundsHelper updateFund(final Long fundID,
final String newName,
final String newExternalId,
final RequestSpecification requestSpec,
final ResponseSpecification responseSpec) {
final HashMap<String, String> map = new HashMap<>();
if (!newName.isEmpty()) {
map.put("name", newName);
} else if (!newExternalId.isEmpty()) {
// to test that the externalId cannot be updated
map.put("externalId", newExternalId);
}
String updateJSON = new Gson().toJson(map);
final String URL = FUNDS_URL + "/" + fundID + "?" + Utils.TENANT_IDENTIFIER;
final HashMap<String, String> response = Utils.performServerPut(requestSpec, responseSpec, URL, updateJSON, "changes");
final String jsonData = new Gson().toJson(response);
return new Gson().fromJson(jsonData, FundsHelper.class);
}
}