*/\r
public class UriTemplateFactory {\r
\r
+ // For coding convenience, each item in the enum is also available as a field\r
+ // in the enclosing class.\r
+ public final static UriTemplateType RESOURCE = UriTemplateType.RESOURCE;\r
+ public final static UriTemplateType ITEM = UriTemplateType.ITEM;\r
+ public final static UriTemplateType CONTACT = UriTemplateType.CONTACT;\r
+\r
+ public enum UriTemplateType {\r
+\r
+ RESOURCE, ITEM, CONTACT\r
+ };\r
+ \r
public final static String SERVICENAME_VAR = "servicename";\r
public final static String IDENTIFIER_VAR = "identifier";\r
public final static String ITEM_IDENTIFIER_VAR = "itemIdentifier";\r
public final static String CONTACT_IDENTIFIER_VAR = "contactIdentifier";\r
\r
public final static String RESOURCE_PATH_PATTERN =\r
- "/ +"\r
+ "/"\r
+ "{" + SERVICENAME_VAR + "}"\r
+ "/"\r
+ "{" + IDENTIFIER_VAR + "}";\r
+ "{" + CONTACT_IDENTIFIER_VAR + "}";\r
\r
public static StoredValuesUriTemplate getURITemplate(UriTemplateType type) {\r
- return new StoredValuesUriTemplate(getUriPathPattern(type));\r
+ return new StoredValuesUriTemplate(type, getUriPathPattern(type));\r
}\r
\r
public static StoredValuesUriTemplate getURITemplate(UriTemplateType type, Map<String,String> storedValuesMap) {\r
- return new StoredValuesUriTemplate(getUriPathPattern(type), storedValuesMap);\r
+ return new StoredValuesUriTemplate(type, getUriPathPattern(type), storedValuesMap);\r
}\r
\r
private static String getUriPathPattern(UriTemplateType type) {\r
}\r
}\r
\r
- public enum UriTemplateType {\r
-\r
- RESOURCE, ITEM, CONTACT\r
- };\r
}
\ No newline at end of file
private final static HashMap<String, String> EMPTY_VALUES_MAP = new HashMap<String, String>();\r
private static final Logger logger = LoggerFactory.getLogger(UriTemplateTest.class);\r
\r
+\r
private void testBanner(String msg) {\r
String BANNER = "-------------------------------------------------------";\r
logger.debug("\r" + BANNER + "\r\n" + this.getClass().getName() + "\r\n" + msg + "\r\n" + BANNER);\r
@Test\r
public void createResourceUriTemplate() {\r
testBanner("createResourceUriTemplate");\r
- UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE);\r
+ UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.RESOURCE);\r
Assert.assertNotNull(resourceTemplate, "Resource template is null; it was not created successfully.");\r
logger.debug("Resource template URI path = " + resourceTemplate.toString());\r
+ Assert.assertNotNull(resourceTemplate.getUriTemplateType(), "Resource template type is null; it was not set successfully.");\r
+ Assert.assertEquals(resourceTemplate.getUriTemplateType(), UriTemplateFactory.RESOURCE,\r
+ "Resource template type + " + resourceTemplate.getUriTemplateType()\r
+ + " doesn't match expected type: " + UriTemplateFactory.RESOURCE);\r
Assert.assertNotNull(resourceTemplate.toString(), "Resource template URI path is null; it was not set successfully.");\r
Assert.assertEquals(resourceTemplate.toString(), UriTemplateFactory.RESOURCE_PATH_PATTERN,\r
- "Resource template URI path doesn't match expected path.");\r
+ "Resource template URI path " + resourceTemplate.toString()\r
+ + " doesn't match expected path: " + UriTemplateFactory.RESOURCE_PATH_PATTERN);\r
}\r
\r
@Test(dependsOnMethods = {"createResourceUriTemplate"})\r
public void buildResourceUri() {\r
testBanner("buildResourceUri");\r
- UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE);\r
+ UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.RESOURCE);\r
Map<String, String> resourceUriVars = new HashMap<String, String>();\r
- resourceUriVars.put("servicename", EXAMPLE_SERVICE_NAME);\r
- resourceUriVars.put("identifier", EXAMPLE_CSID);\r
+ resourceUriVars.put(UriTemplateFactory.SERVICENAME_VAR, EXAMPLE_SERVICE_NAME);\r
+ resourceUriVars.put(UriTemplateFactory.IDENTIFIER_VAR, EXAMPLE_CSID);\r
String uriStr = resourceTemplate.buildUri(resourceUriVars);\r
logger.debug("Generated URI string = " + uriStr);\r
Assert.assertFalse(Tools.isBlank(uriStr), "Generated URI string is null or blank.");\r
public void buildResourceUriWithStoredValues() {\r
testBanner("buildResourceUriWithStoredValues");\r
Map<String, String> storedValuesMap = new HashMap<String, String>();\r
- storedValuesMap.put("servicename", EXAMPLE_SERVICE_NAME);\r
+ storedValuesMap.put(UriTemplateFactory.SERVICENAME_VAR, EXAMPLE_SERVICE_NAME);\r
StoredValuesUriTemplate storedValuesResourceTemplate =\r
- UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE, storedValuesMap);\r
+ UriTemplateFactory.getURITemplate(UriTemplateFactory.RESOURCE, storedValuesMap);\r
Map<String, String> additionalValues = new HashMap<String, String>();\r
- additionalValues.put("identifier", EXAMPLE_CSID);\r
+ additionalValues.put(UriTemplateFactory.IDENTIFIER_VAR, EXAMPLE_CSID);\r
String uriStr = storedValuesResourceTemplate.buildUri(additionalValues);\r
logger.debug("Generated URI string = " + uriStr);\r
Assert.assertTrue(Tools.notBlank(uriStr), "Generated URI string is null or blank.");\r
Assert.assertTrue(uriStr.contains(EXAMPLE_CSID), "Generated URI string does not contain expected value: " + EXAMPLE_CSID);\r
}\r
\r
- @Test(dependsOnMethods = {"buildResourceUri"})\r
+ @Test(dependsOnMethods = {"buildResourceUriWithStoredValues"})\r
public void buildItemUri() {\r
testBanner("buildItemUri");\r
Map<String, String> storedValuesMap = new HashMap<String, String>();\r
- storedValuesMap.put("servicename", EXAMPLE_SERVICE_NAME);\r
+ storedValuesMap.put(UriTemplateFactory.SERVICENAME_VAR, EXAMPLE_SERVICE_NAME);\r
StoredValuesUriTemplate itemTemplate =\r
- UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.ITEM, storedValuesMap);\r
+ UriTemplateFactory.getURITemplate(UriTemplateFactory.ITEM, storedValuesMap);\r
Map<String, String> additionalValues = new HashMap<String, String>();\r
- additionalValues.put("identifier", EXAMPLE_CSID);\r
- additionalValues.put("itemIdentifier", EXAMPLE_ITEM_CSID);\r
+ additionalValues.put(UriTemplateFactory.IDENTIFIER_VAR, EXAMPLE_CSID);\r
+ additionalValues.put(UriTemplateFactory.ITEM_IDENTIFIER_VAR, EXAMPLE_ITEM_CSID);\r
String uriStr = itemTemplate.buildUri(additionalValues);\r
logger.debug("Generated URI string = " + uriStr);\r
Assert.assertTrue(Tools.notBlank(uriStr), "Generated URI string is null or blank.");\r
@Test(dependsOnMethods = {"buildResourceUri"})\r
public void buildResourceUriWithMissingValue() {\r
testBanner("buildResourceUriWithMissingValue");\r
- UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE);\r
+ UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.RESOURCE);\r
Map<String, String> resourceUriVars = new HashMap<String, String>();\r
- resourceUriVars.put("servicename", EXAMPLE_SERVICE_NAME);\r
+ resourceUriVars.put(UriTemplateFactory.SERVICENAME_VAR, EXAMPLE_SERVICE_NAME);\r
// The required 'identifier' value is missing from the Map from which the URI will be built\r
logger.debug("This is a negative test, and an error message is expected here:");\r
String uriStr = resourceTemplate.buildUri(resourceUriVars);\r
@Test(dependsOnMethods = {"buildResourceUri"})\r
public void buildResourceUriWithNullValue() {\r
testBanner("buildResourceUriWithNullValue");\r
- UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE);\r
+ UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.RESOURCE);\r
Map<String, String> resourceUriVars = new HashMap<String, String>();\r
- resourceUriVars.put("servicename", EXAMPLE_SERVICE_NAME);\r
- resourceUriVars.put("identifier", null);\r
+ resourceUriVars.put(UriTemplateFactory.SERVICENAME_VAR, EXAMPLE_SERVICE_NAME);\r
+ resourceUriVars.put(UriTemplateFactory.IDENTIFIER_VAR, null);\r
logger.debug("This is a negative test, and an error message is expected here:");\r
String uriStr = resourceTemplate.buildUri(resourceUriVars);\r
logger.debug("Generated URI string = " + uriStr);\r
@Test(dependsOnMethods = {"buildResourceUri"})\r
public void buildResourceUriWithEmptyValuesMap() {\r
testBanner("buildResourceUriWithEmptyValuesMap");\r
- UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.UriTemplateType.RESOURCE);\r
+ UriTemplate resourceTemplate = UriTemplateFactory.getURITemplate(UriTemplateFactory.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
logger.debug("Generated URI string = " + uriStr);\r