### Question:
UriParserSpringImpl implements UriParser { @Override public Map<String, String> parse(final String uri) { final boolean match = this.uriTemplate.matches(uri); if (!match) { return new LinkedHashMap<>(); } return Collections.unmodifiableMap(decodeParams(this.uriTemplate.match(uri))); } UriParserSpringImpl(final String template); @Override boolean isMatch(final String uri); @Override Map<String, String> parse(final String uri); @Override Set<String> getVariables(); @Override String getTemplate();  }### Answer:
@Test public void reverseTemplate() { final UriParser parser = new UriParserSpringImpl( AAIFluentTypeBuilder.business().customer("").serviceSubscription("").serviceInstance("").uriTemplate()); final String uri = "/business/customers/customer/key1/service-subscriptions/service-subscription/key2/service-instances/service-instance/key3"; Map<String, String> result = parser.parse(uri); assertEquals("found customer-id", "key1", result.get("global-customer-id")); assertEquals("found service-type", "key2", result.get("service-type")); assertEquals("found service-instance-id", "key3", result.get("service-instance-id")); }