]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
26ecdd43da4bc4ad762d67be4450bb56e3204579
[tmp/jakarta-migration.git] /
1 package org.collectionspace.hello.client.test;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import javax.ws.rs.core.MultivaluedMap;
6 import javax.ws.rs.core.Response;
7 import javax.xml.bind.JAXBContext;
8 import javax.xml.bind.Marshaller;
9 import org.collectionspace.hello.PersonNuxeo;
10 import org.collectionspace.hello.People;
11 import org.collectionspace.hello.client.PersonNuxeoClient;
12 import org.jboss.resteasy.client.ClientResponse;
13 import org.testng.Assert;
14 import org.testng.annotations.Test;
15
16 /**
17  * A PersonNuxeoServiceTest.
18  * 
19  * @version $Revision:$
20  */
21 public class PersonNuxeoServiceTest {
22
23     private PersonNuxeoClient personClient = PersonNuxeoClient.getInstance();
24     private String updateId = "";
25     private String deleteId = "";
26
27     @Test
28     public void createPerson() {
29         PersonNuxeo person = createPerson("Chris", "Hoffman");
30         ClientResponse<Response> res = personClient.createPerson(person);
31         Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
32         //store updateId locally
33         updateId = extractId(res);
34     }
35
36     @Test
37     public void createTeam() {
38         PersonNuxeo person = createPerson("Sanjay", "Dalal");
39         ClientResponse<Response> res = personClient.createPerson(person);
40         Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
41         deleteId = extractId(res);
42
43         person = createPerson("Aron", "Roberts");
44         res = personClient.createPerson(person);
45         Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
46
47         person = createPerson("Richard", "Millet");
48         res = personClient.createPerson(person);
49         Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
50
51     }
52
53     @Test(dependsOnMethods = {"createPerson"})
54     public void updatePerson() {
55         PersonNuxeo touPerson = new PersonNuxeo();//personClient.getPerson(updateId).getEntity();
56         touPerson.setId(updateId);
57         verbose("got person to update", touPerson, PersonNuxeo.class);
58         touPerson.setFirstName("Patrick");
59         touPerson.setLastName("Schmitz");
60         PersonNuxeo uPerson = personClient.updatePerson(updateId, touPerson).getEntity();
61         verbose("updated person", uPerson, PersonNuxeo.class);
62         //Assert.assertNotSame(uPerson.getVersion(), initialVersion);
63         Assert.assertEquals(uPerson.getFirstName(), "Patrick");
64     }
65
66     @Test(dependsOnMethods = {"createTeam"})
67     public void getPeople() {
68         //the resource method is expected to return at least an empty list
69         People people = personClient.getPeople().getEntity();
70         List<People.PeopleItem> list = people.getPeopleItem();
71         int i = 0;
72         for(People.PeopleItem pli : list){
73             verbose("getPeople: list-item[" + i + "] title=" + pli.getTitle());
74             verbose("getPeople: list-item[" + i + "] id=" + pli.getId());
75             verbose("getPeople: list-item[" + i + "] uri=" + pli.getUri());
76             i++;
77         }
78     }
79
80     @Test(dependsOnMethods = {"updatePerson"})
81     public void deletePerson() {
82         ClientResponse<Response> res = personClient.deletePerson(deleteId);
83         verbose("deletePerson: id=" + deleteId);
84         verbose("deletePerson: status = " + res.getStatus());
85         Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
86     }
87
88     private PersonNuxeo createPerson(String firstName, String lastName) {
89         PersonNuxeo person = new PersonNuxeo();
90         person.setFirstName(firstName);
91         person.setLastName(lastName);
92         person.setStreet("2195 Hearst Ave.");
93         person.setCity("Berkeley");
94         person.setState("CA");
95         person.setZip("94704");
96         person.setCountry("US");
97         person.setVersion("1.0");
98         return person;
99     }
100
101     private String extractId(ClientResponse<Response> res) {
102         MultivaluedMap mvm = res.getMetadata();
103         String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
104         String[] segments = uri.split("/");
105         String id = segments[segments.length - 1];
106         verbose("id=" + id);
107         return id;
108     }
109
110     private void verbose(String msg) {
111         System.out.println("PersonServiceTest : " + msg);
112     }
113
114     private void verbose(String msg, Object o, Class clazz) {
115         try{
116             verbose(msg);
117             JAXBContext jc = JAXBContext.newInstance(clazz);
118             Marshaller m = jc.createMarshaller();
119             m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
120                     Boolean.TRUE);
121             m.marshal(o, System.out);
122         }catch(Exception e){
123             e.printStackTrace();
124         }
125     }
126
127     private void verboseMap(MultivaluedMap map) {
128         for(Object entry : map.entrySet()){
129             MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
130             verbose("    name=" + mentry.getKey() + " value=" + mentry.getValue());
131         }
132     }
133 }