### Question:
ServiceInstanceUri extends HttpLookupUri { @Override public ServiceInstanceUri clone() { return new ServiceInstanceUri(this.aaiType, this.internalURI.clone(), this.getCachedValue(), values); } protected  ServiceInstanceUri(AAIObjectType type, UriBuilder builder, Optional<String> cachedValue,
            Object... values); protected  ServiceInstanceUri(AAISingleFragment fragment); @Override ServiceInstanceUri clone(); AAIResourcesClient getResourcesClient(); @Override URI buildNoNetwork();  }### Answer:
@Test public void oneKeyClone() throws GraphInventoryUriNotFoundException, GraphInventoryPayloadException { ServiceInstanceUri instance = new ServiceInstanceUri(Types.SERVICE_INSTANCE.getFragment("key1")); ServiceInstanceUri spy = spy(instance); String uri = "/business/customers/customer/key1/service-subscriptions/service-subscription/key2/service-instances/service-instance/key3"; doReturn(Optional.of(uri)).when(spy).getCachedValue(); final URI result = ((HttpAwareUri) spy.resourceVersion("1234").clone()).locateAndBuild(); final URI expected = UriBuilder.fromUri( "/business/customers/customer/key1/service-subscriptions/service-subscription/key2/service-instances/service-instance/key3?resource-version=1234") .build(); assertEquals("result is equal", expected, result); }