From: Sanjay Dalal Date: Thu, 26 Mar 2009 19:07:12 +0000 (+0000) Subject: CSPACE-30 hello.xsd schema changed (made it flat) to accommodate requirements of X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=c0b0f0aab823467e7849d9b48cd20b23c288edce;p=tmp%2Fjakarta-migration.git CSPACE-30 hello.xsd schema changed (made it flat) to accommodate requirements of nuxeo repository and rest apis. HelloWorldDocService renamed to HelloWorldNuxeo Service. Added support for create, update and delete in addition to list. --- diff --git a/HelloWorld/HelloWorldClient/src/test/java/org/collectionspace/hello/client/test/PersonNuxeoServiceTest.java b/HelloWorld/HelloWorldClient/src/test/java/org/collectionspace/hello/client/test/PersonNuxeoServiceTest.java new file mode 100644 index 000000000..26ecdd43d --- /dev/null +++ b/HelloWorld/HelloWorldClient/src/test/java/org/collectionspace/hello/client/test/PersonNuxeoServiceTest.java @@ -0,0 +1,133 @@ +package org.collectionspace.hello.client.test; + +import java.util.ArrayList; +import java.util.List; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Marshaller; +import org.collectionspace.hello.PersonNuxeo; +import org.collectionspace.hello.People; +import org.collectionspace.hello.client.PersonNuxeoClient; +import org.jboss.resteasy.client.ClientResponse; +import org.testng.Assert; +import org.testng.annotations.Test; + +/** + * A PersonNuxeoServiceTest. + * + * @version $Revision:$ + */ +public class PersonNuxeoServiceTest { + + private PersonNuxeoClient personClient = PersonNuxeoClient.getInstance(); + private String updateId = ""; + private String deleteId = ""; + + @Test + public void createPerson() { + PersonNuxeo person = createPerson("Chris", "Hoffman"); + ClientResponse res = personClient.createPerson(person); + Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode()); + //store updateId locally + updateId = extractId(res); + } + + @Test + public void createTeam() { + PersonNuxeo person = createPerson("Sanjay", "Dalal"); + ClientResponse res = personClient.createPerson(person); + Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode()); + deleteId = extractId(res); + + person = createPerson("Aron", "Roberts"); + res = personClient.createPerson(person); + Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode()); + + person = createPerson("Richard", "Millet"); + res = personClient.createPerson(person); + Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode()); + + } + + @Test(dependsOnMethods = {"createPerson"}) + public void updatePerson() { + PersonNuxeo touPerson = new PersonNuxeo();//personClient.getPerson(updateId).getEntity(); + touPerson.setId(updateId); + verbose("got person to update", touPerson, PersonNuxeo.class); + touPerson.setFirstName("Patrick"); + touPerson.setLastName("Schmitz"); + PersonNuxeo uPerson = personClient.updatePerson(updateId, touPerson).getEntity(); + verbose("updated person", uPerson, PersonNuxeo.class); + //Assert.assertNotSame(uPerson.getVersion(), initialVersion); + Assert.assertEquals(uPerson.getFirstName(), "Patrick"); + } + + @Test(dependsOnMethods = {"createTeam"}) + public void getPeople() { + //the resource method is expected to return at least an empty list + People people = personClient.getPeople().getEntity(); + List list = people.getPeopleItem(); + int i = 0; + for(People.PeopleItem pli : list){ + verbose("getPeople: list-item[" + i + "] title=" + pli.getTitle()); + verbose("getPeople: list-item[" + i + "] id=" + pli.getId()); + verbose("getPeople: list-item[" + i + "] uri=" + pli.getUri()); + i++; + } + } + + @Test(dependsOnMethods = {"updatePerson"}) + public void deletePerson() { + ClientResponse res = personClient.deletePerson(deleteId); + verbose("deletePerson: id=" + deleteId); + verbose("deletePerson: status = " + res.getStatus()); + Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode()); + } + + private PersonNuxeo createPerson(String firstName, String lastName) { + PersonNuxeo person = new PersonNuxeo(); + person.setFirstName(firstName); + person.setLastName(lastName); + person.setStreet("2195 Hearst Ave."); + person.setCity("Berkeley"); + person.setState("CA"); + person.setZip("94704"); + person.setCountry("US"); + person.setVersion("1.0"); + return person; + } + + private String extractId(ClientResponse res) { + MultivaluedMap mvm = res.getMetadata(); + String uri = (String) ((ArrayList) mvm.get("Location")).get(0); + String[] segments = uri.split("/"); + String id = segments[segments.length - 1]; + verbose("id=" + id); + return id; + } + + private void verbose(String msg) { + System.out.println("PersonServiceTest : " + msg); + } + + private void verbose(String msg, Object o, Class clazz) { + try{ + verbose(msg); + JAXBContext jc = JAXBContext.newInstance(clazz); + Marshaller m = jc.createMarshaller(); + m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, + Boolean.TRUE); + m.marshal(o, System.out); + }catch(Exception e){ + e.printStackTrace(); + } + } + + private void verboseMap(MultivaluedMap map) { + for(Object entry : map.entrySet()){ + MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry; + verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue()); + } + } +}