]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
209cccf9f856e4ef42720bc32ca5fb5aa80fe86c
[tmp/jakarta-migration.git] /
1 /**     
2  * CollectionSpaceIntegrationTest.java
3  *
4  * {Purpose of This Class}
5  *
6  * {Other Notes Relating to This Class (Optional)}
7  *
8  * $LastChangedBy: $
9  * $LastChangedRevision: $
10  * $LastChangedDate: $
11  *
12  * This document is a part of the source code and related artifacts
13  * for CollectionSpace, an open source collections management system
14  * for museums and related institutions:
15  *
16  * http://www.collectionspace.org
17  * http://wiki.collectionspace.org
18  *
19  * Copyright © 2009 {Contributing Institution}
20  *
21  * Licensed under the Educational Community License (ECL), Version 2.0.
22  * You may not use this file except in compliance with this License.
23  *
24  * You may obtain a copy of the ECL 2.0 License at
25  * https://source.collectionspace.org/collection-space/LICENSE.txt
26  */
27 package org.collectionspace.services.IntegrationTests.test;
28
29 import java.util.ArrayList;
30 import java.util.List;
31
32 import javax.ws.rs.core.MultivaluedMap;
33 import javax.ws.rs.core.Response;
34 import javax.xml.bind.JAXBContext;
35 import javax.xml.bind.Marshaller;
36
37 import org.collectionspace.services.client.PayloadInputPart;
38 import org.collectionspace.services.client.PoxPayloadIn;
39 import org.collectionspace.services.collectionobject.CollectionobjectsCommon;
40 import org.collectionspace.services.collectionobject.TitleGroup;
41 import org.collectionspace.services.collectionobject.TitleGroupList;
42 import org.collectionspace.services.common.api.GregorianCalendarDateTimeUtils;
43 import org.collectionspace.services.intake.IntakesCommon;
44 import org.collectionspace.services.relation.RelationsCommon;
45 import org.jboss.resteasy.client.ClientResponse;
46
47 /**
48  * The Class CollectionSpaceIntegrationTest.
49  */
50 public abstract class CollectionSpaceIntegrationTest {
51
52         /*
53          * Package scoped methods.
54          */
55
56         /**
57          * Fill collection object.
58          * 
59          * @param co the co
60          * @param identifier the identifier
61          */
62         void fillCollectionObject(CollectionobjectsCommon co, String identifier) {
63                 fillCollectionObject(co, "objectNumber-" + identifier, "title-"
64                                 + identifier);
65         }
66
67         /**
68          * Fill collection object.
69          * 
70          * @param co the co
71          * @param objectNumber the object number
72          * @param title the object title
73          */
74         void fillCollectionObject(CollectionobjectsCommon co, String objectNumber,
75                         String title) {
76                 co.setObjectNumber(objectNumber);
77                 TitleGroupList titleGroupList = new TitleGroupList();
78                 List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();
79                 TitleGroup titleGroup = new TitleGroup();
80                 titleGroup.setTitle(title);
81                 titleGroups.add(titleGroup);
82                 co.setTitleGroupList(titleGroupList);
83         }
84
85         /**
86          * Fill intake.
87          * 
88          * @param theIntake the the intake
89          * @param identifier the identifier
90          */
91         void fillIntake(IntakesCommon theIntake, String identifier) {
92                 String CURRENT_DATE_UTC = GregorianCalendarDateTimeUtils.currentDateUTC();
93                 fillIntake(theIntake, "entryNumber-" + identifier, CURRENT_DATE_UTC);
94         }
95
96         /**
97          * Fill intake.
98          * 
99          * @param theIntake the the intake
100          * @param entryNumber the entry number
101          * @param entryDate the entry date
102          */
103         void fillIntake(IntakesCommon theIntake, String entryNumber, String entryDate) {
104                 theIntake.setEntryNumber(entryNumber);
105                 theIntake.setEntryDate(entryDate);
106         }
107
108     /**
109      * Fill relation.
110      * 
111      * @param relation the relation
112      * @param subjectCsid the document id1
113      * @param subjectDocumentType the document type1
114      * @param objectCsid the document id2
115      * @param objectDocumentType the document type2
116      * @param rt the rt
117      */
118     void fillRelation(RelationsCommon relation, 
119             String subjectCsid, String subjectDocumentType,
120             String objectCsid, String objectDocumentType,
121             String rt)
122     {
123         relation.setSubjectCsid(subjectCsid);
124         relation.setSubjectDocumentType(subjectDocumentType);
125         relation.setObjectCsid(objectCsid);
126         relation.setObjectDocumentType(objectDocumentType);
127         
128         relation.setRelationshipType(rt);
129     }
130         
131         /**
132          * Creates the identifier.
133          * 
134          * @return the string
135          */
136         String createIdentifier() {
137                 long identifier = System.currentTimeMillis();
138                 return Long.toString(identifier);
139         }
140
141         /**
142          * Extract id.
143          * 
144          * @param res the res
145          * 
146          * @return the string
147          */
148         String extractId(ClientResponse<Response> res) {
149                 String result = null;
150                 
151                 MultivaluedMap mvm = res.getMetadata();
152                 String uri = (String) ((ArrayList) mvm.get("Location")).get(0);
153                 verbose("extractId:uri=" + uri);
154                 String[] segments = uri.split("/");
155                 result = segments[segments.length - 1];
156                 verbose("id=" + result);
157                 
158                 return result;
159         }
160
161         /**
162          * Extract part.
163          * 
164          * @param input
165          *            the input
166          * @param label
167          *            the label
168          * @param clazz
169          *            the clazz
170          * 
171          * @return the object
172          * 
173          * @throws Exception
174          *             the exception
175          */
176         static Object extractPart(PoxPayloadIn input, String label, Class clazz) {
177                 Object obj = null;
178
179                 PayloadInputPart payloadInputPart = input.getPart(label);
180                 if (payloadInputPart != null) {
181                         obj = payloadInputPart.getBody();
182                                 }
183
184                 return obj;
185         }
186         
187         /**
188          * Verbose.
189          * 
190          * @param msg the msg
191          */
192         void verbose(String msg) {
193                 System.out.println(msg);
194         }
195
196         /**
197          * Verbose.
198          * 
199          * @param msg the msg
200          * @param o the o
201          * @param clazz the clazz
202          */
203         void verbose(String msg, Object o, Class clazz) {
204                 try {
205                         verbose(msg);
206                         JAXBContext jc = JAXBContext.newInstance(clazz);
207                         Marshaller m = jc.createMarshaller();
208                         m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
209                         m.marshal(o, System.out);
210                 } catch (Exception e) {
211                         e.printStackTrace();
212                 }
213         }
214
215         /**
216          * Verbose map.
217          * 
218          * @param map the map
219          */
220         void verboseMap(MultivaluedMap map) {
221                 for (Object entry : map.entrySet()) {
222                         MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
223                         verbose("  name=" + mentry.getKey() + " value=" + mentry.getValue());
224                 }
225         }
226
227 }