]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
525a086b0f5c00b1f6277b2d9aada7ef0b7094c9
[tmp/jakarta-migration.git] /
1 package org.collectionspace.hello.client;
2
3 import java.util.ArrayList;
4 import javax.ws.rs.core.MultivaluedMap;
5 import javax.ws.rs.core.Response;
6 import javax.xml.bind.JAXBContext;
7 import javax.xml.bind.JAXBElement;
8 import javax.xml.bind.Marshaller;
9 import javax.xml.namespace.QName;
10 import org.collectionspace.hello.client.*;
11 import org.jboss.resteasy.client.ClientResponse;
12 import org.testng.Assert;
13 import org.testng.annotations.Test;
14
15 /**
16  * A PersonServiceTest.
17  * 
18  * @version $Revision:$
19  */
20 public class PersonServiceTest {
21
22     private PersonClient personClient = PersonClient.getInstance();
23     private Long id = 0L;
24
25     @Test
26     public void createPerson() {
27         Person person = new Person();
28         person.setFirstName("Chris");
29         person.setLastName("Hoffman");
30         person.setStreet("2195 Hearst Ave.");
31         person.setCity("Berkeley");
32         person.setState("CA");
33         person.setZip("94704");
34         person.setCountry("US");
35         ClientResponse<Response> res = personClient.createPerson(person);
36         Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());
37         id = extractId(res);
38     }
39
40     @Test(dependsOnMethods = {"createPerson"})
41     public void updatePerson() {
42         Person me = personClient.getPerson(id).getEntity();
43         verbose("received with get", me);
44         me.setFirstName("Richard");
45         me.setLastName("Millet");
46         int initialVersion = me.getVersion();
47         Person updated = personClient.updatePerson(id, me).getEntity();
48         verbose("updated", updated);
49         Assert.assertNotSame(updated.getVersion(), initialVersion);
50         Assert.assertEquals(updated.getFirstName(), "Richard");
51     }
52
53     private Long extractId(ClientResponse<Response> res) {
54         MultivaluedMap mvm = res.getMetadata();
55         String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
56         String[] segments = uri.split("/");
57         System.out.println("id=" + segments[segments.length - 1]);
58         return Long.valueOf(segments[segments.length - 1]);
59     }
60
61     private void verbose(String msg, Person p) {
62         try {
63             System.out.println(msg);
64             JAXBContext jc = JAXBContext.newInstance(Person.class);
65             Marshaller m = jc.createMarshaller();
66             m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
67                     Boolean.TRUE);
68             m.marshal(new JAXBElement(new QName("uri", "local"), Person.class, p), System.out);
69         } catch (Exception e) {
70             e.printStackTrace();
71         }
72     }
73 }