+192
@@ -0,0 +1,192 @@
|
||||
/**
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
package org.mifosplatform.integrationtests;
|
||||
|
||||
import static org.hamcrest.Matchers.*;
|
||||
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.office.OfficeHelper;
|
||||
import org.mifosplatform.integrationtests.common.office.OfficeResourceHandler;
|
||||
|
||||
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;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class OfficeIntegrationsTest {
|
||||
|
||||
private ResponseSpecification statusOkResponseSpec;
|
||||
private RequestSpecification requestSpec;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
Utils.initializeRESTAssured();
|
||||
this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
|
||||
this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
|
||||
this.statusOkResponseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOffice() {
|
||||
int random_array = {1997, 26, 12};
|
||||
OfficeHelper oh = OfficeHelper // oh ---> Office Helper
|
||||
.create(Utils.randomNameGenerator("", 5))
|
||||
.externalId(Utils.randomNameGenerator("offices-", 7))
|
||||
.nameDecorated(Utils.randomNameGenerator("", 8))
|
||||
.openingDate(random_array)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
String JsonData = oh.toJSON();
|
||||
final Long officeID = createOfficeID(JsonData, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNotNull(officeID);
|
||||
|
||||
}
|
||||
|
||||
private Long createOffice(final String officeJSON,
|
||||
final RequestSpecification requestSpec,
|
||||
final ResponseSpecification responseSpec) {
|
||||
String officeId = String.valueOf(OfficeResourceHandler.createOffice(officeJSON, requestSpec, responseSpec));
|
||||
if (officeId.equals("null")) {
|
||||
// Invalid JSON data parameters
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Long(officeId);
|
||||
|
||||
@Test
|
||||
public void testCreateOfficeWithEmptyName ()
|
||||
{
|
||||
int random_array = {2000, 4, 8};
|
||||
OfficeHelper oh = new OfficeHelper
|
||||
.create(null)
|
||||
.externalId(Utils.randomNameGenerator("", 5))
|
||||
.nameDecorated(Utils.randomNameGenerator("offices-", 6))
|
||||
.openingDate(random_array)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
String JsonData = oh.toJSON();
|
||||
final Long officeID = createOfficeID(JsonData, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNull(officeID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOfficeWithEmptyExternalId ()
|
||||
{
|
||||
int random_array = {2005, 1, 1};
|
||||
OfficeHelper oh = new OfficeHelper
|
||||
.create(Utils.randomNameGenerator("", 3))
|
||||
.externalId(null)
|
||||
.nameDecorated(Utils.randomNameGenerator("offices-", 5))
|
||||
.openingDate(random_array)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
String JsonData = oh.toJSON();
|
||||
final Long OfficeID = createOfficeID(JsonData, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNotNull(OfficeID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOfficeWithDuplicateName ()
|
||||
{
|
||||
int random_array1 = {1998, 12, 10};
|
||||
OfficeHelper oh1 = new OfficeHelper
|
||||
.create(Utils.randomNameGenerator("", 7))
|
||||
.externalId(Utils.randomNameGenerator("Offices-", 4))
|
||||
.nameDecorated(Utils.randomNameGenerator("", 10))
|
||||
.openingDate(random_array1)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
String JsonData = oh1.toJSON();
|
||||
final Long OfficeID1 = createOfficeID(JsonData, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNotNull(OfficeID);
|
||||
|
||||
int random_array2 = {2002, 10, 10};
|
||||
OfficeHelper oh2 = new OfficeHelper
|
||||
.create(Utils.randomNameGenerator("", 7))
|
||||
.externalId(Utils.randomNameGenerator(oh.getName()))
|
||||
.nameDecorated(Utils.randomNameGenerator("", 11))
|
||||
.openingDate(random_array2)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
|
||||
String JsonData = oh2.toJSON();
|
||||
ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(400).build(); // 400 if the test works
|
||||
final Long OfficeID2 = createOfficeID(JsonData, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNull(OfficeID2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOfficeWithDuplicateExternalId ()
|
||||
{
|
||||
int random_array1 = {2003, 2, 2};
|
||||
OfficeHelper oh1 = new OfficeHelper
|
||||
.create(Utils.randomNameGenerator("", 8))
|
||||
.externalId(oh1.getExternalId())
|
||||
.nameDecorated(Utils.randomNameGenerator("", 10))
|
||||
.openingDate(random_array1)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
|
||||
String JsonData = oh1.toJSON();
|
||||
final Long OfficeID1 = createOfficeID(JsonData1, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNotNull(OfficeID);
|
||||
|
||||
int random_array2 = {2005, 5, 5};
|
||||
OfficeHelper oh2 = new OfficeHelper
|
||||
.create(Utils.randomNameGenerator("", 9))
|
||||
.externalId(Utils.randomNameGenerator("Offices-", 5))
|
||||
.nameDecorated(Utils.randomNameGenerator("", 11))
|
||||
.openingDate(random_array2)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
|
||||
String JsonData = oh2.toJSON();
|
||||
ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(402).build(); // 402 if the test works
|
||||
final Long OfficeID2 = createOfficeID(JsonData2, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNull(OfficeID2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateOfficeWithEmptyOpeningDate ()
|
||||
{
|
||||
OfficeHelper oh = new OfficeHelper
|
||||
.create(Utils.randomNameGenerator("", 9))
|
||||
.externalId(Utils.randomNameGenerator("Offices-", 4))
|
||||
.nameDecorated(Utils.randomNameGenerator("", 3))
|
||||
.openingDate(null)
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
|
||||
String JsonData = oh.toJSON();
|
||||
final Long OfficeID = createOfficeID(JsonData, this.requestSpec, this.statusOkResponseSpec);
|
||||
Assert.assertNotNull(OfficeID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNameUnknowForNow ()
|
||||
{
|
||||
OfficeHelper oh = new OfficeHelper
|
||||
.create()
|
||||
.externalId()
|
||||
.nameDecorated()
|
||||
.openingDate()
|
||||
.hierarchy(".")
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
/**
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
package org.mifosplatform.integrationtests.common.office;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
public class OfficeHelper {
|
||||
|
||||
public static class Builder {
|
||||
|
||||
private String name;
|
||||
private String externalId;
|
||||
private Long id;
|
||||
private String nameDecorated;
|
||||
private int openingDate[] = new int[3];
|
||||
private String hierarchy;
|
||||
|
||||
|
||||
private Builder(final String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Builder externalId(final String externalId) {
|
||||
this.externalId = externalId;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public Builder nameDecorated(final String nameDecorated) {
|
||||
this.nameDecorated = nameDecorated;
|
||||
}
|
||||
|
||||
public Builder openingDate(final int[] openingDate) {
|
||||
this.openingDate = openingDate;
|
||||
}
|
||||
|
||||
public Builder hierarchy(final String hierarchy) {
|
||||
this.hierarchy = hierarchy;
|
||||
}
|
||||
public OfficeHelper build() {
|
||||
return new OfficeHelper(this.name, this.externalId, this.nameDecorated, this.openingDate, this.hierarchy);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private String name;
|
||||
private String externalId;
|
||||
private Long id;
|
||||
private String nameDecorated;
|
||||
|
||||
|
||||
OfficeHelper() {
|
||||
super();
|
||||
}
|
||||
|
||||
private OfficeHelper(final String name, final String externalId, final String nameDecorated, final String hierarchy, final int[] openingDate) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.externalId = externalId;
|
||||
this.nameDecorated = nameDecorated;
|
||||
this.hierarchy = hierarchy;
|
||||
this.openingDate = openingDate;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public String toJSON() {
|
||||
return new Gson().toJson(this);
|
||||
}
|
||||
|
||||
public static OfficeHelper fromJSON(final String jsonData) {
|
||||
return new Gson().fromJson(jsonData, OfficeHelper.class);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public String getNameDecorated()
|
||||
{ return this.nameDecorated; }
|
||||
|
||||
public String getHierarchy()
|
||||
{ return this.hierarchy; }
|
||||
|
||||
|
||||
public String getExternalId() {
|
||||
return this.externalId;
|
||||
}
|
||||
|
||||
public int openingDate() {
|
||||
return this.openingDate;
|
||||
}
|
||||
|
||||
public static Builder create(final String name) {
|
||||
return new Builder(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
package org.mifosplatform.integrationtests.common.office;
|
||||
|
||||
import com.google.common.reflect.TypeToken;
|
||||
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 OfficeResourceHandler {
|
||||
|
||||
private static final String OFFICES_URL = "/mifosng-provider/api/v1/offices";
|
||||
private static final String CREATE_OFFICES_URL = OFFICES_URL + "?" + Utils.TENANT_IDENTIFIER;
|
||||
|
||||
public static Integer createOffice(final String officeJSON,
|
||||
final RequestSpecification requestSpec,
|
||||
final ResponseSpecification responseSpec) {
|
||||
return Utils.performServerPost(requestSpec, responseSpec, CREATE_OFFICES_URL, officeJSON, "resourceId");
|
||||
}
|
||||
|
||||
public Integer createOffice(final String openingDate) {
|
||||
String json = getAsJSON(openingDate);
|
||||
return Utils.performServerPost(this.requestSpec, this.responseSpec, OFFICE_URL + "?" + Utils.TENANT_IDENTIFIER, json,
|
||||
CommonConstants.RESPONSE_RESOURCE_ID);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user