1 package org.collectionspace.hello.test;
3 import org.junit.Assert;
5 import org.apache.commons.httpclient.HttpMethodBase;
6 import org.apache.commons.httpclient.HttpClient;
7 import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
9 import java.io.BufferedReader;
10 import java.io.InputStreamReader;
11 import java.io.OutputStream;
12 import java.net.HttpURLConnection;
16 * @version $Revision: 1 $
18 public class CollectionObjectServiceRawXmlTest {
21 public void testCollectionObjectResource() throws Exception {
22 verbose("create a new CollectionObject");
23 // Create a new object
24 String newCollectionObject =
25 "<collectionObject xmlns=\"http://collectionspace.org/hello\">" +
26 "<serviceMetadata />" +
27 "<defaultCollectionObject>" +
28 "<objectNumber>1984.021.0049</objectNumber>" +
29 "<objectName>Radio News, vol. 10, no. 2, August 1928</objectName>" +
30 "</defaultCollectionObject>" +
31 "</collectionObject>";
32 verbose("new object: " + newCollectionObject);
33 URL postUrl = new URL("http://localhost:8080/helloworld/cspace/collectionobjects");
34 HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
35 connection.setDoOutput(true);
36 connection.setInstanceFollowRedirects(false);
37 connection.setRequestMethod("POST");
38 connection.setRequestProperty("Content-Type", "application/xml");
39 OutputStream os = connection.getOutputStream();
40 os.write(newCollectionObject.getBytes());
42 verbose("response: " + connection.getResponseMessage());
43 Assert.assertEquals(HttpURLConnection.HTTP_CREATED, connection.getResponseCode());
44 String createdUrl = connection.getHeaderField("Location");
45 verbose("Location: " + createdUrl);
46 connection.disconnect();
50 verbose("get created CollectionObject");
51 URL getUrl = new URL(createdUrl);
52 connection = (HttpURLConnection) getUrl.openConnection();
53 connection.setRequestMethod("GET");
54 verbose("Content-Type: " + connection.getContentType());
56 BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
58 String line = reader.readLine();
59 while (line != null) {
61 line = reader.readLine();
63 Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
64 connection.disconnect();
66 String updateCollectionObject =
67 "<collectionObject xmlns=\"http://collectionspace.org/hello\">" +
68 "<serviceMetadata />" +
69 "<defaultCollectionObject>" +
70 "<objectNumber>1997.005.0437</objectNumber>" +
71 "<objectName>Toy, Gotham City Police Helicopter, 1992</objectName>" +
72 "</defaultCollectionObject>" +
73 "</collectionObject>";
75 connection = (HttpURLConnection) getUrl.openConnection();
76 connection.setDoOutput(true);
77 connection.setRequestMethod("PUT");
78 connection.setRequestProperty("Content-Type", "application/xml");
79 os = connection.getOutputStream();
80 os.write(updateCollectionObject.getBytes());
82 verbose("response: " + connection.getResponseMessage());
83 Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
84 connection.disconnect();
87 verbose("updated CollectionObject");
88 connection = (HttpURLConnection) getUrl.openConnection();
89 connection.setRequestMethod("GET");
91 verbose("Content-Type: " + connection.getContentType());
92 reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
94 line = reader.readLine();
95 while (line != null) {
97 line = reader.readLine();
99 Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
100 connection.disconnect();
104 private void verbose(String msg) {
105 System.out.println("CollectionObjectServiceRawXmlTest : " + msg);