package mobi.greenplate.client.itest;
import mobi.greenplate.client.service.response.AddressResponseHandler;
import mobi.greenplate.client.service.response.AddressListResponseHandler;
import java.util.List;
import mobi.greenplate.client.TestHelper;
import mobi.greenplate.client.TestUtil;
import mobi.greenplate.client.connect.DefaultResponseHandler;
import mobi.greenplate.client.connect.ServerCall;
import mobi.greenplate.client.connect.ServerCallBuilder;
import mobi.greenplate.client.converter.AddressConverter;
import mobi.greenplate.client.domain.Address;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author dmakariev
*/
public class AddressResourceTest {
public AddressResourceTest() {
}
//"http://localhost:8080/services/address";
@Test
public void testGetAddressListResource() {
final ServerCall call = new ServerCallBuilder(TestUtil.localhostConnectionContext());
final AddressListResponseHandler addressListResponseHandler = new AddressListResponseHandler();
final int statusCode = call.url("http://localhost:8080/services/address").get(addressListResponseHandler);
assertEquals("objects exist", 200, statusCode);
final List<Address> expected = TestHelper.expectedAddressList();
final List<Address> result = addressListResponseHandler.getAddressList();
assertEquals("parsed address list ", expected, result);
}
@Test
public void testGetAddressResource() {
final ServerCall call = new ServerCallBuilder(TestUtil.localhostConnectionContext());
final AddressResponseHandler addressResponseHandler = new AddressResponseHandler();
final int statusCode = call.url("http://localhost:8080/services/address/5").get(addressResponseHandler);
assertEquals("object exists ", 200, statusCode);
final Address expected = TestHelper.expectedAddress_1();
final Address result = addressResponseHandler.getAddress();
assertEquals("parsed address ", expected, result);
}
@Test
public void testPostDeleteAddressResource() {
final ServerCall call = new ServerCallBuilder(TestUtil.localhostConnectionContext());
final Address newAddress = TestHelper.expectedAddress_1();
newAddress.setCity("Sofia");
newAddress.setId(null);
final String stringEntity = AddressConverter.toXml(newAddress);
final String expectedStringEntity = "<address><city>Sofia</city><latitude>25</latitude><longtitude>52</longtitude><state>CA</state><street>Mission</street><zip>94103</zip></address>";
assertEquals(" address for saving ", expectedStringEntity, stringEntity);
final DefaultResponseHandler postHandler = new DefaultResponseHandler();
final int statusCode = call.url("http://localhost:8080/services/address").stringEntity(stringEntity).post(postHandler);
assertEquals("object was created", 201, statusCode);
final String createdAddressLocation = postHandler.getLocation();
final int statusCodeDeleted = call.url(createdAddressLocation).delete(postHandler);
assertEquals("object was deleted", 204, statusCodeDeleted);
}
@Test
public void testPutAddressResource() {
final ServerCall call = new ServerCallBuilder(TestUtil.localhostConnectionContext());
final Address newAddress = TestHelper.expectedAddress_1();
newAddress.setCity("Sofia");
newAddress.setId(null);
final String stringEntity = AddressConverter.toXml(newAddress);
final String expectedStringEntity = "<address><city>Sofia</city><latitude>25</latitude><longtitude>52</longtitude><state>CA</state><street>Mission</street><zip>94103</zip></address>";
assertEquals(" address for saving ", expectedStringEntity, stringEntity);
final DefaultResponseHandler postHandler = new DefaultResponseHandler();
final int statusCode = call.url("http://localhost:8080/services/address").stringEntity(stringEntity).post(postHandler);
assertEquals("object was created", 201, statusCode);
final String createdAddressLocation = postHandler.getLocation();
final Long createdAddressId = postHandler.getId();
newAddress.setCity("SOFIA update");
final String stringEntityPut = AddressConverter.toXml(newAddress);
final AddressResponseHandler addressResponseHandler = new AddressResponseHandler();
final int statusCodePut = call.url(createdAddressLocation).stringEntity(stringEntityPut).put(addressResponseHandler);
assertEquals("object updated statusCode ", 200, statusCodePut);
final Address result = addressResponseHandler.getAddress();
final Address expected = TestHelper.expectedAddress_1();
expected.setId(createdAddressId);
expected.setCity("SOFIA update");
assertEquals("objects after update", expected, result);
final int statusCodeDeleted = call.url(createdAddressLocation).delete(postHandler);
assertEquals("object was deleted", 204, statusCodeDeleted);
}
}
|