From cbf3983e500c2cf8b397d26865a8a938cfd1220c Mon Sep 17 00:00:00 2001 From: Aron Roberts Date: Thu, 21 Mar 2013 14:21:21 -0700 Subject: [PATCH] CSPACE-5940: Fix bug that resulted in 'bare' ampersands being present in collectionspace_core:refName values, when copying those values from refName fields in authority term (item) records. --- .../import-locationitem-varexpansion.xml | 23 ++++++++ .../test-data/xmlreplay/imports/imports.xml | 57 ++++++++++++++++++- .../res/import-locationauthority.res.xml | 2 +- .../import-locationitem-varexpansion.res.xml | 28 +++++++++ .../imports/res/import-locationitem.res.xml | 9 +++ .../services/imports/TemplateExpander.java | 2 +- 6 files changed, 117 insertions(+), 4 deletions(-) create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/import-locationitem-varexpansion.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem-varexpansion.res.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem.res.xml diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/import-locationitem-varexpansion.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/import-locationitem-varexpansion.xml new file mode 100644 index 000000000..245260973 --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/import-locationitem-varexpansion.xml @@ -0,0 +1,23 @@ + + + + + + + + Wattford & Gump Outbuilding + + + ${shortIdentifierValue} + urn:cspace:core.collectionspace.org:locationauthorities:name(${importLocationAuthorityWithVarExpansion.shortIdentifierValue})'Wattford & Gump Outbuilding' + ${inAuthorityValue} + + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml index 716a6961d..81187b2c8 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/imports.xml @@ -179,7 +179,8 @@ - + + 200 POST @@ -224,6 +225,57 @@ DELETE /cspace-services/locationauthorities/${importLocationAuthorityWithVarExpansion.recordCSID} + + + + 200 + POST + /cspace-services/imports + imports/import-locationitem-varexpansion.xml + + 5c45cdf7-f1bd-4ff3-844d-59f40ffc5b29 + wattfordandgumpoutbuilding + ${importLocationAuthorityWithVarExpansion.recordCSID} + + + + imports/res/import-locationitem.res.xml + + + + 200 + GET + /cspace-services/locationauthorities/${importLocationAuthorityWithVarExpansion.recordCSID}/items/${importLocationItemWithVarExpansion.recordCSID} + + imports/res/import-locationitem-varexpansion.res.xml + + + + + + + + + + + ${importLocationItemWithVarExpansion.shortIdentifierValue} + ${importLocationItemWithVarExpansion.inAuthorityValue} + /locationauthorities/${importLocationAuthorityWithVarExpansion.recordCSID}/items/${importLocationItemWithVarExpansion.recordCSID} + + + + + 200 + DELETE + /cspace-services/locationauthorities/${importLocationAuthorityWithVarExpansion.recordCSID}/items/${importLocationItemWithVarExpansion.recordCSID} + @@ -274,6 +326,7 @@ DELETE /cspace-services/locationauthorities/${importLocationAuthorityWithGeneratedRefName.recordCSID} + - + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationauthority.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationauthority.res.xml index fa8c2619c..62b6431eb 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationauthority.res.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationauthority.res.xml @@ -2,7 +2,7 @@ 1 - LocationAuthority + Locationauthority 1 diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem-varexpansion.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem-varexpansion.res.xml new file mode 100644 index 000000000..3fd8879fe --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem-varexpansion.res.xml @@ -0,0 +1,28 @@ + + + + + + + Wattford & Gump Outbuilding + + + ${shortIdentifierValue} + ${inAuthorityValue} + + + + 1 + ${uriValue} + urn:cspace:core.collectionspace.org:locationauthorities:name(${importLocationAuthorityWithVarExpansion.shortIdentifierValue})'Wattford & Gump Outbuilding' + + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem.res.xml new file mode 100644 index 000000000..6588688a9 --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/imports/res/import-locationitem.res.xml @@ -0,0 +1,9 @@ + + + 1 + + Locationitem + 1 + + + diff --git a/services/imports/service/src/main/java/org/collectionspace/services/imports/TemplateExpander.java b/services/imports/service/src/main/java/org/collectionspace/services/imports/TemplateExpander.java index d172814d2..73c85e8d6 100644 --- a/services/imports/service/src/main/java/org/collectionspace/services/imports/TemplateExpander.java +++ b/services/imports/service/src/main/java/org/collectionspace/services/imports/TemplateExpander.java @@ -176,7 +176,7 @@ public class TemplateExpander { wrapperTmpl = Tools.searchAndReplace(wrapperTmpl, var("uri"), getDocUri(tenantId, SERVICE_TYPE, docID, partTmpl)); wrapperTmpl = Tools.searchAndReplace(wrapperTmpl, var("refName"), - getRefName(tenantId, SERVICE_TYPE, docID, partTmpl)); + getRefName(tenantId, SERVICE_TYPE, docID, partTmpl).replace("&", "&")); String serviceDir = outDir + '/' + docID; -- 2.47.3