1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
4 <testGroup ID="CreateUpdateReadStructuredObjects" autoDeletePOSTS="false">
6 <!-- Create a set of CollectionObjects -->
9 <!-- (parent of chess board, bags of white and black chess pieces) -->
10 <test ID="CreateChessSetBox" auth="admin@core.collectionspace.org">
12 <uri>/cspace-services/collectionobjects</uri>
13 <filename>collectionobject/hierarchy/1-collectionobject.xml</filename>
15 <var ID="objectNumber">CSPACE-5518-ChessSetBox</var>
17 <expectedCodes>201</expectedCodes>
19 <!-- Verify the contents of the first CollectionObject record created. -->
20 <!-- Other create requests, below, just check the result code.) -->
21 <test ID="ReadChessSetBox" auth="admin@core.collectionspace.org">
23 <uri>/cspace-services/collectionobjects/${CreateChessSetBox.CSID}</uri>
24 <expectedCodes>200</expectedCodes>
26 <expected level="TEXT" />
27 <filename>collectionobject/hierarchy/res/collectionobject.res.xml</filename>
29 <var ID="objectNumber">${CreateChessSetBox.objectNumber}</var>
35 <!-- (child of chess set box, sibling of bags of white and black chess pieces) -->
36 <test ID="CreateChessBoard" auth="admin@core.collectionspace.org">
38 <uri>/cspace-services/collectionobjects</uri>
39 <filename>collectionobject/hierarchy/2-collectionobjects-with-relations-create.xml</filename>
41 <var ID="objectNumber">CSPACE-5518-ChessBoard</var>
42 <var ID="parentCSID">${CreateChessSetBox.CSID}</var>
44 <expectedCodes>201</expectedCodes>
46 <test ID="ReadChessBoard" auth="admin@core.collectionspace.org">
48 <uri>/cspace-services/collectionobjects/${CreateChessBoard.CSID}</uri>
49 <expectedCodes>200</expectedCodes>
52 <!-- Bags of white and black chess pieces -->
53 <!-- (child of chess set box, sibling of chess board, parents of chess pieces) -->
55 <test ID="CreateBagOfWhiteChessPieces">
57 <uri>/cspace-services/collectionobjects</uri>
58 <filename>collectionobject/hierarchy/2-collectionobjects-with-relations-create.xml</filename>
60 <var ID="objectNumber">CSPACE-5518-BagOfWhiteChessPieces</var>
61 <var ID="parentCSID">${CreateChessSetBox.CSID}</var>
63 <expectedCodes>201</expectedCodes>
65 <test ID="ReadBagOfWhiteChessPieces" auth="admin@core.collectionspace.org">
67 <uri>/cspace-services/collectionobjects/${CreateBagOfWhiteChessPieces.CSID}</uri>
68 <expectedCodes>200</expectedCodes>
71 <test ID="CreateBagOfBlackChessPieces">
73 <uri>/cspace-services/collectionobjects</uri>
74 <filename>collectionobject/hierarchy/2-collectionobjects-with-relations-create.xml</filename>
76 <var ID="objectNumber">CSPACE-5518-BagOfBlackChessPieces</var>
77 <var ID="parentCSID">${CreateChessSetBox.CSID}</var>
80 <test ID="ReadBagOfBlackChessPieces" auth="admin@core.collectionspace.org">
82 <uri>/cspace-services/collectionobjects/${CreateBagOfBlackChessPieces.CSID}</uri>
83 <expectedCodes>200</expectedCodes>
86 <!-- Individual chess pieces in those bags -->
88 <test ID="CreateWhiteRook">
90 <uri>/cspace-services/collectionobjects</uri>
91 <filename>collectionobject/hierarchy/2-collectionobjects-with-relations-create.xml</filename>
93 <var ID="objectNumber">CSPACE-5518-WhiteRook</var>
94 <var ID="parentCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
96 <expectedCodes>201</expectedCodes>
98 <test ID="ReadWhiteRook" auth="admin@core.collectionspace.org">
100 <uri>/cspace-services/collectionobjects/${CreateWhiteRook.CSID}</uri>
101 <expectedCodes>200</expectedCodes>
104 <test ID="CreateWhiteBishop">
105 <method>POST</method>
106 <uri>/cspace-services/collectionobjects</uri>
107 <filename>collectionobject/hierarchy/2-collectionobjects-with-relations-create.xml</filename>
109 <var ID="objectNumber">CSPACE-5518-WhiteBishop</var>
110 <var ID="parentCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
112 <expectedCodes>201</expectedCodes>
114 <test ID="ReadWhiteBishop" auth="admin@core.collectionspace.org">
116 <uri>/cspace-services/collectionobjects/${CreateWhiteBishop.CSID}</uri>
117 <expectedCodes>200</expectedCodes>
120 <test ID="CreateBlackQueen">
121 <method>POST</method>
122 <uri>/cspace-services/collectionobjects</uri>
123 <filename>collectionobject/hierarchy/2-collectionobjects-with-relations-create.xml</filename>
125 <var ID="objectNumber">CSPACE-5518-BlackQueen</var>
126 <var ID="parentCSID">${CreateBagOfBlackChessPieces.CSID}</var>
128 <expectedCodes>201</expectedCodes>
130 <test ID="ReadBlackQueen" auth="admin@core.collectionspace.org">
132 <uri>/cspace-services/collectionobjects/${CreateBlackQueen.CSID}</uri>
133 <expectedCodes>200</expectedCodes>
136 <test ID="CreateBlackRook">
137 <method>POST</method>
138 <uri>/cspace-services/collectionobjects</uri>
139 <filename>collectionobject/hierarchy/2-collectionobjects-with-relations-create.xml</filename>
141 <var ID="objectNumber">CSPACE-5518-BlackRook</var>
142 <var ID="parentCSID">${CreateBagOfBlackChessPieces.CSID}</var>
144 <expectedCodes>201</expectedCodes>
146 <test ID="ReadBlackRook" auth="admin@core.collectionspace.org">
148 <uri>/cspace-services/collectionobjects/${CreateBlackRook.CSID}</uri>
149 <expectedCodes>200</expectedCodes>
152 <test ID="ReadHierarchyForTopLevelItem">
154 <uri>/cspace-services/collectionobjects/${CreateChessSetBox.CSID}?showRelations=true</uri>
156 <expected level="ADDOK" />
157 <filename>collectionobject/hierarchy/res/show-relations-top-level.res.xml</filename>
159 <var ID="chessSetBoxCSID">${CreateChessSetBox.CSID}</var>
160 <var ID="chessBoardCSID">${CreateChessBoard.CSID}</var>
161 <var ID="bagOfWhiteChessPiecesCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
162 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
164 <startElement>/document/*[local-name()='relations-common-list']</startElement>
166 <expectedCodes>200</expectedCodes>
169 <!-- Update one of the existing chess pieces, and add yet one more -->
170 <!-- hierarchical relationship, between that piece and another -->
171 <!-- existing CollectionObject. -->
173 <test ID="UpdateBlackRootWithRelations">
175 <uri>/cspace-services/collectionobjects/${CreateBlackRook.CSID}</uri>
176 <filename>collectionobject/hierarchy/3-collectionobjects-with-relations-update.xml</filename>
178 <var ID="distinguishingFeatures">This rook has two light brown striations on part of its base.</var>
179 <var ID="blackRookCSID">${CreateBlackRook.CSID}</var>
180 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
182 <expectedCodes>200</expectedCodes>
187 Read hierarchical relations via three query parameters now
188 supported for structured objects and procedures, as well as
196 <!-- Read hierarchical relationships via 'showRelations', -->
197 <!-- which returns direct parent and child relations. -->
199 <test ID="ShowRelationsForTopLevelItem">
201 <uri>/cspace-services/collectionobjects/${CreateChessSetBox.CSID}?showRelations=true</uri>
203 <expected level="ADDOK" />
204 <filename>collectionobject/hierarchy/res/show-relations-top-level.res.xml</filename>
206 <var ID="chessSetBoxCSID">${CreateChessSetBox.CSID}</var>
207 <var ID="chessBoardCSID">${CreateChessBoard.CSID}</var>
208 <var ID="bagOfWhiteChessPiecesCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
209 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
211 <startElement>/document/*[local-name()='relations-common-list']</startElement>
213 <expectedCodes>200</expectedCodes>
216 <test ID="ShowRelationsForMidLevelItem">
218 <uri>/cspace-services/collectionobjects/${CreateBagOfBlackChessPieces.CSID}?showRelations=true</uri>
220 <expected level="ADDOK" />
221 <filename>collectionobject/hierarchy/res/show-relations-mid-level.res.xml</filename>
223 <var ID="chessSetBoxCSID">${CreateChessSetBox.CSID}</var>
224 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
225 <var ID="blackQueenCSID">${CreateBlackQueen.CSID}</var>
226 <var ID="blackRookCSID">${CreateBlackRook.CSID}</var>
228 <startElement>/document/*[local-name()='relations-common-list']</startElement>
230 <expectedCodes>200</expectedCodes>
233 <test ID="ShowRelationsForBottomLevelItem">
235 <uri>/cspace-services/collectionobjects/${CreateBlackRook.CSID}?showRelations=true</uri>
237 <expected level="ADDOK" />
238 <filename>collectionobject/hierarchy/res/show-relations-bottom-level.res.xml</filename>
240 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
241 <var ID="blackRookCSID">${CreateBlackRook.CSID}</var>
243 <startElement>/document/*[local-name()='relations-common-list']</startElement>
245 <expectedCodes>200</expectedCodes>
248 <!-- Read hierarchical relationships via 'showSiblings', -->
249 <!-- which returns sibling relations. -->
251 <test ID="ShowSiblingsForTopLevelItem">
253 <uri>/cspace-services/collectionobjects/${CreateChessSetBox.CSID}?showSiblings=true</uri>
254 <expectedCodes>200</expectedCodes>
256 <expected level="ADDOK" />
257 <filename>collectionobject/hierarchy/res/show-siblings-top-level.res.xml</filename>
258 <startElement>/document/*[local-name()='relations-common-list']</startElement>
262 <test ID="ShowSiblingsForMidLevelItem">
264 <uri>/cspace-services/collectionobjects/${CreateBagOfBlackChessPieces.CSID}?showSiblings=true</uri>
265 <expectedCodes>200</expectedCodes>
267 <expected level="ADDOK" />
268 <filename>collectionobject/hierarchy/res/show-siblings-mid-level.res.xml</filename>
270 <var ID="chessSetBoxCSID">${CreateChessSetBox.CSID}</var>
271 <var ID="chessBoardCSID">${CreateChessBoard.CSID}</var>
272 <var ID="bagOfWhiteChessPiecesCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
274 <startElement>/document/*[local-name()='relations-common-list']</startElement>
278 <test ID="ShowSiblingsForBottomLevelItem">
280 <uri>/cspace-services/collectionobjects/${CreateBlackRook.CSID}?showSiblings=true</uri>
281 <expectedCodes>200</expectedCodes>
283 <expected level="ADDOK" />
284 <filename>collectionobject/hierarchy/res/show-siblings-bottom-level.res.xml</filename>
286 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
287 <var ID="blackQueenCSID">${CreateBlackQueen.CSID}</var>
289 <startElement>/document/*[local-name()='relations-common-list']</startElement>
293 <!-- Read hierarchical relationships via 'showAllRelations', -->
294 <!-- which returns parent, child, and sibling relationships. -->
296 <test ID="ShowAllRelationsForTopLevelItem">
298 <uri>/cspace-services/collectionobjects/${CreateChessSetBox.CSID}?showAllRelations=true</uri>
299 <expectedCodes>200</expectedCodes>
301 <expected level="ADDOK" />
302 <filename>collectionobject/hierarchy/res/show-all-relations-top-level.res.xml</filename>
303 <startElement>/document/*[local-name()='relations-common-list']</startElement>
307 <!-- Currently returns only three relations (parent, two children), -->
308 <!-- rather than five (parent, two children, two siblings). - ADR 2012-09-10 -->
310 <test ID="ShowAllRelationsForMidLevelItem">
312 <uri>/cspace-services/collectionobjects/${CreateBagOfWhiteChessPieces.CSID}?showAllRelations=true</uri>
313 <expectedCodes>200</expectedCodes>
315 <expected level="ADDOK" />
316 <filename>collectionobject/hierarchy/res/show-all-relations-mid-level.res.xml</filename>
318 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
319 <var ID="bagOfWhiteChessPiecesCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
320 <var ID="whiteRookCSID">${CreateWhiteRook.CSID}</var>
321 <var ID="whiteBishopCSID">${CreateWhiteBishop.CSID}</var>
323 <startElement>/document/*[local-name()='relations-common-list']</startElement>
328 <!-- Currently returns only one relation (parent), rather than -->
329 <!-- two (parent, sibling). - ADR 2012-09-10 -->
331 <test ID="ShowAllRelationsForBottomLevelItem">
333 <uri>/cspace-services/collectionobjects/${CreateWhiteBishop.CSID}?showAllRelations=true</uri>
334 <expectedCodes>200</expectedCodes>
336 <expected level="ADDOK" />
337 <filename>collectionobject/hierarchy/res/show-all-relations-bottom-level.res.xml</filename>
339 <var ID="bagOfWhiteChessPiecesCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
340 <var ID="whiteRookCSID">${CreateWhiteRook.CSID}</var>
341 <var ID="whiteBishopCSID">${CreateWhiteBishop.CSID}</var>
343 <startElement>/document/*[local-name()='relations-common-list']</startElement>
348 <!-- Read hierarchical relationships via the relations service. -->
349 <!-- (This can also serve as a cross-check on the additional read mechanisms, above.) -->
351 <!-- Zero (0) total items are expected for the top-level item as a subject, -->
352 <!-- since the tests above created relation records with this top-level -->
353 <!-- solely as an object of those relations. -->
354 <test ID="GetRelationsAsSubjectForTopLevelItem">
356 <uri>/cspace-services/relations?sbj=${CreateChessSetBox.CSID}</uri>
357 <expectedCodes>200</expectedCodes>
359 <expected level="ADDOK" />
360 <filename>collectionobject/hierarchy/res/relations-pagination-header.res.xml</filename>
362 <var ID="totalItems">0</var>
367 <test ID="GetRelationsAsObjectForTopLevelItem">
369 <uri>/cspace-services/relations?obj=${CreateChessSetBox.CSID}</uri>
370 <expectedCodes>200</expectedCodes>
372 <expected level="ADDOK" />
373 <filename>collectionobject/hierarchy/res/relations-as-object-top-level.res.xml</filename>
375 <var ID="chessSetBoxCSID">${CreateChessSetBox.CSID}</var>
376 <var ID="chessBoardCSID">${CreateChessBoard.CSID}</var>
377 <var ID="bagOfWhiteChessPiecesCSID">${CreateBagOfWhiteChessPieces.CSID}</var>
378 <var ID="bagOfBlackChessPiecesCSID">${CreateBagOfBlackChessPieces.CSID}</var>
380 <startElement>/document/*[local-name()='relations-common-list']</startElement>
386 <!-- Clean up any records that were not automatically deleted by autoDeletePOSTS -->
388 <testGroup ID="Cleanup">
393 <test ID="DeleteHierarchy">
397 <!-- The following is likely unnecessary with 'autoDeletePOSTS="true"' -->
399 <test ID="DeleteBlackRook" auth="admin@core.collectionspace.org">
400 <method>DELETE</method>
401 <uri>/cspace-services/collectionobjects/${CreateBlackRook.CSID}</uri>
403 <test ID="DeleteBlackQueen" auth="admin@core.collectionspace.org">
404 <method>DELETE</method>
405 <uri>/cspace-services/collectionobjects/${CreateBlackQueen.CSID}</uri>
407 <test ID="DeleteWhiteBishop" auth="admin@core.collectionspace.org">
408 <method>DELETE</method>
409 <uri>/cspace-services/collectionobjects/${CreateWhiteBishop.CSID}</uri>
411 <test ID="DeleteWhiteRook" auth="admin@core.collectionspace.org">
412 <method>DELETE</method>
413 <uri>/cspace-services/collectionobjects/${CreateWhiteRook.CSID}</uri>
415 <test ID="DeleteBagOfBlackChessPieces" auth="admin@core.collectionspace.org">
416 <method>DELETE</method>
417 <uri>/cspace-services/collectionobjects/${CreateBagOfBlackChessPieces.CSID}</uri>
419 <test ID="DeleteBagOfWhiteChessPieces" auth="admin@core.collectionspace.org">
420 <method>DELETE</method>
421 <uri>/cspace-services/collectionobjects/${CreateBagOfWhiteChessPieces.CSID}</uri>
423 <test ID="DeleteChessBoard" auth="admin@core.collectionspace.org">
424 <method>DELETE</method>
425 <uri>/cspace-services/collectionobjects/${CreateChessBoard.CSID}</uri>
427 <test ID="DeleteChessSetBox" auth="admin@core.collectionspace.org">
428 <method>DELETE</method>
429 <uri>/cspace-services/collectionobjects/${CreateChessSetBox.CSID}</uri>