private static final Logger logger = LoggerFactory.getLogger(StoredValuesUriTemplate.class);
private Map<String, String> storedValuesMap = new HashMap<String, String>();
-
+
+ public StoredValuesUriTemplate(String path) {
+ super(path);
+ }
+
public StoredValuesUriTemplate(String path, Map<String, String> storedValuesMap) {
super(path);
setStoredValuesMap(storedValuesMap);
}
- private void setStoredValuesMap(Map<String, String> storedValuesMap) {
+ public void setStoredValuesMap(Map<String, String> storedValuesMap) {
if (storedValuesMap != null && !storedValuesMap.isEmpty()) {
this.storedValuesMap = storedValuesMap;
}
*/\r
package org.collectionspace.services.common;\r
\r
+import java.util.Map;\r
+\r
/**\r
* UriTemplateFactory.java\r
*\r
"/{servicename}/{identifier}/items/{itemIdentifier}";\r
public final static String CONTACT_TEMPLATE_PATTERN =\r
"/{servicename}/{identifier}/items/{itemIdentifier}/contacts/{contactIdentifier}";\r
- private final static UriTemplate RESOURCE_URI_TEMPLATE =\r
- new UriTemplate(RESOURCE_TEMPLATE_PATTERN);\r
- private final static UriTemplate ITEM_URI_TEMPLATE =\r
- new UriTemplate(ITEM_TEMPLATE_PATTERN);\r
- private final static UriTemplate CONTACT_URI_TEMPLATE =\r
- new UriTemplate(CONTACT_TEMPLATE_PATTERN);\r
+ \r
+ private final static StoredValuesUriTemplate RESOURCE_URI_TEMPLATE =\r
+ new StoredValuesUriTemplate(RESOURCE_TEMPLATE_PATTERN);\r
+ private final static StoredValuesUriTemplate ITEM_URI_TEMPLATE =\r
+ new StoredValuesUriTemplate(ITEM_TEMPLATE_PATTERN);\r
+ private final static StoredValuesUriTemplate CONTACT_URI_TEMPLATE =\r
+ new StoredValuesUriTemplate(CONTACT_TEMPLATE_PATTERN);\r
\r
- public static UriTemplate getURITemplate(UriTemplateType type) {\r
+ public static StoredValuesUriTemplate getURITemplate(UriTemplateType type) {\r
switch (type) {\r
case RESOURCE:\r
return RESOURCE_URI_TEMPLATE;\r
\r
import java.util.HashMap;\r
import java.util.Map;\r
+import org.collectionspace.services.common.StoredValuesUriTemplate;\r
import org.collectionspace.services.common.UriTemplate;\r
import org.collectionspace.services.common.UriTemplateFactory;\r
import org.collectionspace.services.common.api.Tools;\r
\r
final static String EXAMPLE_SERVICE_NAME = "examples";\r
final static String EXAMPLE_CSID = "a87f6616-4146-4c17-a41a-048597cc12aa";\r
+ final static HashMap<String, String> EMPTY_VALUES_MAP = new HashMap<String, String>();\r
private static final Logger logger = LoggerFactory.getLogger(UriTemplateTest.class);\r
\r
private void testBanner(String msg) {\r
resourceUriVars.put("identifier", EXAMPLE_CSID);\r
String uriStr = resourceTemplate.buildUri(resourceUriVars);\r
Assert.assertFalse(Tools.isBlank(uriStr), "Generated URI string is null or blank.");\r
+ Assert.assertTrue(uriStr.contains(EXAMPLE_SERVICE_NAME), "Generated URI string does not contain expected value: " + EXAMPLE_SERVICE_NAME);\r
+ Assert.assertTrue(uriStr.contains(EXAMPLE_CSID), "Generated URI string does not contain expected value: " + EXAMPLE_CSID);\r
+ logger.debug("Generated URI string = " + uriStr);\r
+ }\r
+\r
+ @Test(dependsOnMethods = {"buildResourceUri"})\r
+ public void buildResourceUriWithStoredValues() {\r
+ testBanner("buildResourceUriWithStoredValues");\r
+ StoredValuesUriTemplate storedValuesResourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE);\r
+ Map<String, String> storedValuesMap = new HashMap<String, String>();\r
+ storedValuesMap.put("servicename", EXAMPLE_SERVICE_NAME);\r
+ storedValuesResourceTemplate.setStoredValuesMap(storedValuesMap);\r
+ Map<String, String> additionalValues = new HashMap<String, String>();\r
+ additionalValues.put("identifier", EXAMPLE_CSID);\r
+ String uriStr = storedValuesResourceTemplate.buildUri(additionalValues);\r
+ Assert.assertFalse(Tools.isBlank(uriStr), "Generated URI string is null or blank.");\r
+ Assert.assertTrue(uriStr.contains(EXAMPLE_SERVICE_NAME), "Generated URI string does not contain expected value: " + EXAMPLE_SERVICE_NAME);\r
+ Assert.assertTrue(uriStr.contains(EXAMPLE_CSID), "Generated URI string does not contain expected value: " + EXAMPLE_CSID);\r
logger.debug("Generated URI string = " + uriStr);\r
}\r
\r
Assert.assertTrue(Tools.isBlank(uriStr), "Generated URI string was not blank, but should have been.");\r
logger.debug("Generated URI string = " + uriStr);\r
}\r
+\r
+ @Test(dependsOnMethods = {"buildResourceUri"})\r
+ public void buildResourceUriWithEmptyValuesMap() {\r
+ testBanner("buildResourceUriWithEmptyValuesMap");\r
+ UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE);\r
+ logger.debug("This is a negative test, and an error message is expected here:");\r
+ String uriStr = resourceTemplate.buildUri(EMPTY_VALUES_MAP);\r
+ Assert.assertTrue(Tools.isBlank(uriStr), "Generated URI string was not blank, but should have been.");\r
+ logger.debug("Generated URI string = " + uriStr);\r
+ }\r
}\r