]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
174994abae4ba75d71ee3c6741a2eccf5e11a83f
[tmp/jakarta-migration.git] /
1 package org.collectionspace.hello.test;
2
3 import org.junit.Assert;
4 import org.junit.Test;
5 import org.apache.commons.httpclient.HttpMethodBase;
6 import org.apache.commons.httpclient.HttpClient;
7 import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
8
9 import java.io.BufferedReader;
10 import java.io.InputStreamReader;
11 import java.io.OutputStream;
12 import java.net.HttpURLConnection;
13 import java.net.URL;
14
15 /**
16  * @version $Revision: 1 $
17  */
18 public class CollectionObjectServiceRawXmlTest {
19
20     @Test
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());
41         os.flush();
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();
47
48
49         // Get the new object
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());
55
56         BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
57
58         String line = reader.readLine();
59         while (line != null) {
60             verbose(line);
61             line = reader.readLine();
62         }
63         Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
64         connection.disconnect();
65
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>";
74     
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());
81         os.flush();
82         verbose("response: " + connection.getResponseMessage());
83         Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
84         connection.disconnect();
85
86         // Show the update
87         verbose("updated CollectionObject");
88         connection = (HttpURLConnection) getUrl.openConnection();
89         connection.setRequestMethod("GET");
90
91         verbose("Content-Type: " + connection.getContentType());
92         reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
93
94         line = reader.readLine();
95         while (line != null) {
96             verbose(line);
97             line = reader.readLine();
98         }
99         Assert.assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
100         connection.disconnect();
101
102     }
103
104     private void verbose(String msg) {
105         System.out.println("CollectionObjectServiceRawXmlTest : " + msg);
106     }
107 }