2 * CollectionSpaceIntegrationTest.java
4 * {Purpose of This Class}
6 * {Other Notes Relating to This Class (Optional)}
9 * $LastChangedRevision: $
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:
16 * http://www.collectionspace.org
17 * http://wiki.collectionspace.org
19 * Copyright © 2009 {Contributing Institution}
21 * Licensed under the Educational Community License (ECL), Version 2.0.
22 * You may not use this file except in compliance with this License.
24 * You may obtain a copy of the ECL 2.0 License at
25 * https://source.collectionspace.org/collection-space/LICENSE.txt
27 package org.collectionspace.services.IntegrationTests.test;
29 import java.util.ArrayList;
30 import java.util.List;
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;
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;
47 * The Class CollectionSpaceIntegrationTest.
49 public abstract class CollectionSpaceIntegrationTest {
50 protected List<String> allRelationResourceIdsCreated = new ArrayList<String>();
51 protected List<String> allResourceIdsCreated = new ArrayList<String>();
54 * Package scoped methods.
58 * Fill collection object.
61 * @param identifier the identifier
63 void fillCollectionObject(CollectionobjectsCommon co, String identifier) {
64 fillCollectionObject(co, "objectNumber-" + identifier, "title-"
69 * Fill collection object.
72 * @param objectNumber the object number
73 * @param title the object title
75 void fillCollectionObject(CollectionobjectsCommon co, String objectNumber,
77 co.setObjectNumber(objectNumber);
78 TitleGroupList titleGroupList = new TitleGroupList();
79 List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();
80 TitleGroup titleGroup = new TitleGroup();
81 titleGroup.setTitle(title);
82 titleGroups.add(titleGroup);
83 co.setTitleGroupList(titleGroupList);
89 * @param theIntake the the intake
90 * @param identifier the identifier
92 void fillIntake(IntakesCommon theIntake, String identifier) {
93 String CURRENT_DATE_UTC = GregorianCalendarDateTimeUtils.currentDateUTC();
94 fillIntake(theIntake, "entryNumber-" + identifier, CURRENT_DATE_UTC);
100 * @param theIntake the the intake
101 * @param entryNumber the entry number
102 * @param entryDate the entry date
104 void fillIntake(IntakesCommon theIntake, String entryNumber, String entryDate) {
105 theIntake.setEntryNumber(entryNumber);
106 theIntake.setEntryDate(entryDate);
112 * @param relation the relation
113 * @param subjectCsid the document id1
114 * @param subjectDocumentType the document type1
115 * @param objectCsid the document id2
116 * @param objectDocumentType the document type2
119 void fillRelation(RelationsCommon relation,
120 String subjectCsid, String subjectDocumentType,
121 String objectCsid, String objectDocumentType,
124 relation.setSubjectCsid(subjectCsid);
125 relation.setSubjectDocumentType(subjectDocumentType);
126 relation.setObjectCsid(objectCsid);
127 relation.setObjectDocumentType(objectDocumentType);
129 relation.setRelationshipType(rt);
133 * Creates the identifier.
137 String createIdentifier() {
138 long identifier = System.currentTimeMillis();
139 return Long.toString(identifier);
142 String extractId(Response res) {
143 String result = null;
145 MultivaluedMap<String, Object> mvm = res.getMetadata();
146 String uri = (String) ((ArrayList<Object>) mvm.get("Location")).get(0);
147 verbose("extractId:uri=" + uri);
148 String[] segments = uri.split("/");
149 result = segments[segments.length - 1];
150 verbose("id=" + result);
170 static Object extractPart(PoxPayloadIn input, String label) {
173 PayloadInputPart payloadInputPart = input.getPart(label);
174 if (payloadInputPart != null) {
175 obj = payloadInputPart.getBody();
186 void verbose(String msg) {
187 System.out.println(msg);
195 * @param clazz the clazz
197 void verbose(String msg, Object o, Class clazz) {
200 JAXBContext jc = JAXBContext.newInstance(clazz);
201 Marshaller m = jc.createMarshaller();
202 m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
203 m.marshal(o, System.out);
204 } catch (Exception e) {
214 void verboseMap(MultivaluedMap map) {
215 for (Object entry : map.entrySet()) {
216 MultivaluedMap.Entry mentry = (MultivaluedMap.Entry) entry;
217 verbose(" name=" + mentry.getKey() + " value=" + mentry.getValue());