]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
DRYD-302: Fixed regression where sorting on extension fields stopped working.
authorRichard Millet <remillet@yahoo.com>
Thu, 8 Mar 2018 22:06:54 +0000 (14:06 -0800)
committerRichard Millet <remillet@yahoo.com>
Thu, 8 Mar 2018 22:06:54 +0000 (14:06 -0800)
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/co1.xml [new file with mode: 0644]
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/collectionobject-related.xml [new file with mode: 0644]
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/media-template.xml [new file with mode: 0644]
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/r-1.xml [new file with mode: 0644]
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/responses/sortRelated.res.xml [new file with mode: 0644]
services/IntegrationTests/src/test/resources/test-data/xmlreplay/xml-replay-master.xml
services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/DocumentModelHandler.java

diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/co1.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/co1.xml
new file mode 100644 (file)
index 0000000..51242d9
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<document name="collectionobjects">
+
+  <ns2:collectionobjects_common
+    xmlns:ns2="http://collectionspace.org/services/collectionobject">
+    <objectNumber>16.0221415</objectNumber>
+  </ns2:collectionobjects_common>
+
+</document>
diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/collectionobject-related.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/collectionobject-related.xml
new file mode 100644 (file)
index 0000000..177db0b
--- /dev/null
@@ -0,0 +1,168 @@
+<?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}&amp;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}&amp;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>
diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/media-template.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/media-template.xml
new file mode 100644 (file)
index 0000000..412fb40
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<document name="media">
+  <ns2:media_common xmlns:ns2="http://collectionspace.org/services/media"
+    xmlns:ns3="http://collectionspace.org/services/jaxb">
+    <identificationNumber>${identificationNumber}</identificationNumber>
+  </ns2:media_common>
+  <ns2:media_testsci xmlns:ns2="http://collectionspace.org/services/media/domain/testsci"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <imageNumber>${imageNumber}</imageNumber>
+  </ns2:media_testsci>
+</document>
diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/r-1.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/r-1.xml
new file mode 100644 (file)
index 0000000..f96366b
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document name="relations">
+  <ns2:relations_common 
+          xmlns:ns2="http://collectionspace.org/services/relation" 
+          xmlns:ns3="http://collectionspace.org/services/jaxb">
+    <subjectCsid>${subjectCsid}</subjectCsid>
+    <subjectDocumentType>${subjectDocumentType}</subjectDocumentType>
+    <objectCsid>${objectCsid}</objectCsid>
+    <objectDocumentType>${objectDocumentType}</objectDocumentType>
+    <relationshipType>${relationshipType}</relationshipType>
+    <predicateDisplayName>${relationshipType}</predicateDisplayName>
+  </ns2:relations_common>
+</document>
+
+
diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/responses/sortRelated.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/related/responses/sortRelated.res.xml
new file mode 100644 (file)
index 0000000..4d33ad6
--- /dev/null
@@ -0,0 +1,35 @@
+<ns2:abstract-common-list xmlns:ns2="http://collectionspace.org/services/jaxb">
+    <pageNum>0</pageNum>
+    <itemsInPage>3</itemsInPage>
+    <totalItems>3</totalItems>
+    <fieldsReturned>
+        csid|uri|refName|updatedAt|workflowState|identificationNumber|blobCsid|title
+    </fieldsReturned>
+    <list-item>
+        <csid>${first}</csid>
+        <uri>/media/${first}</uri>
+        <refName>
+            urn:cspace:testsci.collectionspace.org:media:id(${first})
+        </refName>
+        <workflowState>project</workflowState>
+        <identificationNumber>${identificationNumberFirst}</identificationNumber>
+    </list-item>
+    <list-item>
+        <csid>${middle}</csid>
+        <uri>/media/${middle}</uri>
+        <refName>
+            urn:cspace:testsci.collectionspace.org:media:id(${middle})
+        </refName>
+        <workflowState>project</workflowState>
+        <identificationNumber>${identificationNumberMiddle}</identificationNumber>
+    </list-item>
+    <list-item>
+        <csid>${last}</csid>
+        <uri>/media/${last}</uri>
+        <refName>
+            urn:cspace:testsci.collectionspace.org:media:id(${last})
+        </refName>
+        <workflowState>project</workflowState>
+        <identificationNumber>${identificationNumberLast}</identificationNumber>
+    </list-item>
+</ns2:abstract-common-list>
\ No newline at end of file
index a7eda68bdb84e3f02077cbb98feaaa449362b49b..bb69f51264486364b36d16be8697320512bc5160 100644 (file)
@@ -24,6 +24,8 @@
  
     <run controlFile="collectionobject/collectionobject-adv-search.xml" testGroup="advSearchCommonSchema" />
     <run controlFile="collectionobject/collectionobject-adv-search.xml" testGroup="advSearchExtensionSchema" />
+    <run controlFile="collectionobject/related/collectionobject-related.xml" />
+    
     <run controlFile="acquisitions/acquisitions.xml" testGroup="makeone" />
     <run controlFile="acquisitions/acquisitions.xml" testGroup="testList" />
     <run controlFile="relation/relation.xml" testGroup="makeRelations" />
index 1fe322dee5dbddd59b6108bbc3cb8d7a6a60d22a..3f87b3e9ccc5386de74e679cbc0044ed3e323c90 100644 (file)
@@ -465,7 +465,7 @@ public abstract class DocumentModelHandler<T, TL>
                String matchObjDocTypes = (String)queryParams.getFirst(IQueryManager.SEARCH_RELATED_MATCH_OBJ_DOCTYPES);
                String selectDocType = (String)queryParams.getFirst(IQueryManager.SELECT_DOC_TYPE_FIELD);
 
-               String docType = this.getServiceContext().getDocumentType();
+               String docType = NuxeoUtils.getTenantQualifiedDocType(this.getServiceContext()); // Fixed for https://issues.collectionspace.org/browse/DRYD-302
                if (selectDocType != null && !selectDocType.isEmpty()) {
                        docType = selectDocType;
                }