--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xmlReplay>
+ <auths>
+ <!-- IMPORTANT: THESE ARE STICKY :: THEY STICK AROUND UNTIL RESET, IN EXEC ORDER OF THIS FILE. -->
+ <!-- Auth = Base64Encode("username:password") See https://www.base64encode.org/
+ For example:
+ Username = "grover"
+ Password = "grover2018"
+ Token String = "grover:grover2018"
+ Auth ID = "Z3JvdmVyOmdyb3ZlcjIwMTg="
+ -->
+ <auth ID="admin@core.collectionspace.org"
+ >YWRtaW5AY29yZS5jb2xsZWN0aW9uc3BhY2Uub3JnOkFkbWluaXN0cmF0b3I=</auth>
+ <auth ID="admin@testsci.collectionspace.org"
+ >YWRtaW5AdGVzdHNjaS5jb2xsZWN0aW9uc3BhY2Uub3JnOkFkbWluaXN0cmF0b3I=</auth>
+
+ </auths>
+
+ <testGroup ID="Related" autoDeletePOSTS="true" authForCleanup="admin@testsci.collectionspace.org">
+ <test ID="CreateTargetObject" auth="admin@testsci.collectionspace.org">
+ <method>POST</method>
+ <uri>/cspace-services/collectionobjects</uri>
+ <filename>collectionobject/related/co1.xml</filename>
+ <expectedCodes>201</expectedCodes>
+ </test>
+
+ <!-- Create and related first Media record -->
+ <test ID="Media1">
+ <method>POST</method>
+ <uri>/cspace-services/media/</uri>
+ <vars>
+ <var ID="identificationNumber">ball</var>
+ <var ID="imageNumber">roll</var>
+ </vars>
+ <filename>collectionobject/related/media-template.xml</filename>
+ </test>
+ <test ID="relate1">
+ <method>POST</method>
+ <uri>/cspace-services/relations/</uri>
+ <vars>
+ <var ID="subjectCsid">${CreateTargetObject.CSID}</var>
+ <var ID="objectCsid">${Media1.CSID}</var>
+ <var ID="subjectDocumentType">CollectionObject</var>
+ <var ID="objectDocumentType">Media</var>
+ <var ID="relationshipType">affects</var>
+ </vars>
+ <filename>collectionobject/related/r-1.xml</filename>
+ </test>
+ <test ID="relate2">
+ <method>POST</method>
+ <uri>/cspace-services/relations/</uri>
+ <vars>
+ <var ID="subjectCsid">${Media1.CSID}</var>
+ <var ID="objectCsid">${CreateTargetObject.CSID}</var>
+ <var ID="subjectDocumentType">Media</var>
+ <var ID="objectDocumentType">CollectionObject</var>
+ <var ID="relationshipType">affects</var>
+ </vars>
+ <filename>collectionobject/related/r-1.xml</filename>
+ </test>
+
+ <!-- Create and related second Media record -->
+ <test ID="Media2">
+ <method>POST</method>
+ <uri>/cspace-services/media/</uri>
+ <vars>
+ <var ID="identificationNumber">apple</var>
+ <var ID="imageNumber">zoo</var>
+ </vars>
+ <filename>collectionobject/related/media-template.xml</filename>
+ </test>
+ <test ID="relate1">
+ <method>POST</method>
+ <uri>/cspace-services/relations/</uri>
+ <vars>
+ <var ID="subjectCsid">${CreateTargetObject.CSID}</var>
+ <var ID="objectCsid">${Media2.CSID}</var>
+ <var ID="subjectDocumentType">CollectionObject</var>
+ <var ID="objectDocumentType">Media</var>
+ <var ID="relationshipType">affects</var>
+ </vars>
+ <filename>collectionobject/related/r-1.xml</filename>
+ </test>
+ <test ID="relate2">
+ <method>POST</method>
+ <uri>/cspace-services/relations/</uri>
+ <vars>
+ <var ID="subjectCsid">${Media2.CSID}</var>
+ <var ID="objectCsid">${CreateTargetObject.CSID}</var>
+ <var ID="subjectDocumentType">Media</var>
+ <var ID="objectDocumentType">CollectionObject</var>
+ <var ID="relationshipType">affects</var>
+ </vars>
+ <filename>collectionobject/related/r-1.xml</filename>
+ </test>
+
+ <!-- Create and related third Media record -->
+ <test ID="Media3">
+ <method>POST</method>
+ <uri>/cspace-services/media/</uri>
+ <vars>
+ <var ID="identificationNumber">cat</var>
+ <var ID="imageNumber">anvil</var>
+ </vars>
+ <filename>collectionobject/related/media-template.xml</filename>
+ </test>
+ <test ID="relate1">
+ <method>POST</method>
+ <uri>/cspace-services/relations/</uri>
+ <vars>
+ <var ID="subjectCsid">${CreateTargetObject.CSID}</var>
+ <var ID="objectCsid">${Media3.CSID}</var>
+ <var ID="subjectDocumentType">CollectionObject</var>
+ <var ID="objectDocumentType">Media</var>
+ <var ID="relationshipType">affects</var>
+ </vars>
+ <filename>collectionobject/related/r-1.xml</filename>
+ </test>
+ <test ID="relate2">
+ <method>POST</method>
+ <uri>/cspace-services/relations/</uri>
+ <vars>
+ <var ID="subjectCsid">${Media3.CSID}</var>
+ <var ID="objectCsid">${CreateTargetObject.CSID}</var>
+ <var ID="subjectDocumentType">Media</var>
+ <var ID="objectDocumentType">CollectionObject</var>
+ <var ID="relationshipType">affects</var>
+ </vars>
+ <filename>collectionobject/related/r-1.xml</filename>
+ </test>
+
+ <!-- Now check that we can sort related records by a field in the common schema -->
+ <test ID="sortByidentificationNumber">
+ <method>GET</method>
+ <uri>/cspace-services/media?rtSbj=${CreateTargetObject.CSID}&sortBy=media_common:identificationNumber</uri>
+ <response>
+ <vars>
+ <var ID="first">${Media2.CSID}</var>
+ <var ID="middle">${Media1.CSID}</var>
+ <var ID="last">${Media3.CSID}</var>
+ <var ID="identificationNumberFirst">apple</var>
+ <var ID="identificationNumberMiddle">ball</var>
+ <var ID="identificationNumberLast">cat</var>
+ </vars>
+ <expected level="ADDOK" />
+ <filename>collectionobject/related/responses/sortRelated.res.xml</filename>
+ </response>
+ </test>
+
+ <!-- Now check that we can sort related records by a field in the extension schema -->
+ <test ID="sortByidentificationNumber">
+ <method>GET</method>
+ <uri>/cspace-services/media?rtSbj=${CreateTargetObject.CSID}&sortBy=media_testsci:imageNumber</uri>
+ <response>
+ <vars>
+ <var ID="first">${Media3.CSID}</var>
+ <var ID="middle">${Media1.CSID}</var>
+ <var ID="last">${Media2.CSID}</var>
+ <var ID="identificationNumberFirst">cat</var>
+ <var ID="identificationNumberMiddle">ball</var>
+ <var ID="identificationNumberLast">apple</var>
+ </vars>
+ <expected level="ADDOK" />
+ <filename>collectionobject/related/responses/sortRelated.res.xml</filename>
+ </response>
+ </test>
+ </testGroup>
+</xmlReplay>