ResourceId to instance-identifier string converter methods
part of ONOS-7503
Change-Id: I5c0b0c0c38f51ea1a94208c0b7cb9d4be1db060f
diff --git a/apps/config/src/test/java/org/onosproject/d/config/ResourceIdsTest.java b/apps/config/src/test/java/org/onosproject/d/config/ResourceIdsTest.java
index b1c237b..0c9623e 100644
--- a/apps/config/src/test/java/org/onosproject/d/config/ResourceIdsTest.java
+++ b/apps/config/src/test/java/org/onosproject/d/config/ResourceIdsTest.java
@@ -15,10 +15,15 @@
*/
package org.onosproject.d.config;
+import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.onosproject.d.config.DeviceResourceIds.DCS_NAMESPACE;
+import static org.onosproject.d.config.DeviceResourceIds.DEVICES_ID;
+import static org.onosproject.d.config.DeviceResourceIds.toResourceId;
+import static org.onosproject.d.config.ResourceIds.fromInstanceIdentifier;
import org.junit.Test;
+import org.onosproject.net.DeviceId;
import org.onosproject.yang.model.ResourceId;
public class ResourceIdsTest {
@@ -29,6 +34,64 @@
.build();
@Test
+ public void testFromInstanceIdentifier() {
+
+ ResourceId eth0 = ResourceId.builder()
+ .addBranchPointSchema("interfaces", "ietf-interfaces")
+ .addBranchPointSchema("interface", "ietf-interfaces")
+ .addKeyLeaf("name", "ietf-interfaces", "eth0")
+ .build();
+ assertThat(ResourceIds.fromInstanceIdentifier("/ietf-interfaces:interfaces/interface[name=\"eth0\"]"),
+ is(eth0));
+
+ assertThat("fromInstanceIdentifier return path relative to virtual root",
+ ResourceIds.fromInstanceIdentifier("/org.onosproject.dcs:devices"),
+ is(ResourceIds.relativize(ResourceIds.ROOT_ID, DEVICES_ID)));
+
+ assertThat(ResourceIds.prefixDcsRoot(
+ ResourceIds.fromInstanceIdentifier("/org.onosproject.dcs:devices")),
+ is(DEVICES_ID));
+
+ assertThat(ResourceIds.fromInstanceIdentifier("/"),
+ is(nullValue()));
+
+ DeviceId deviceId = DeviceId.deviceId("test:device-identifier");
+ assertThat(ResourceIds.prefixDcsRoot(
+ fromInstanceIdentifier("/org.onosproject.dcs:devices/device[device-id=\"test:device-identifier\"]")),
+ is(toResourceId(deviceId)));
+
+ }
+
+ @Test
+ public void testToInstanceIdentifier() {
+
+ assertThat(ResourceIds.toInstanceIdentifier(ResourceIds.ROOT_ID),
+ is("/"));
+ assertThat(ResourceIds.toInstanceIdentifier(DEVICES_ID),
+ is("/org.onosproject.dcs:devices"));
+
+ DeviceId deviceId = DeviceId.deviceId("test:device-identifier");
+ assertThat(ResourceIds.toInstanceIdentifier(toResourceId(deviceId)),
+ is("/org.onosproject.dcs:devices/device[device-id=\"test:device-identifier\"]"));
+
+ assertThat(ResourceIds.toInstanceIdentifier(ResourceIds.relativize(DEVICES_ID, toResourceId(deviceId))),
+ is("/org.onosproject.dcs:device[device-id=\"test:device-identifier\"]"));
+
+ ResourceId eth0 = ResourceId.builder()
+ .addBranchPointSchema("interfaces", "ietf-interfaces")
+ .addBranchPointSchema("interface", "ietf-interfaces")
+ .addKeyLeaf("name", "ietf-interfaces", "eth0")
+ .build();
+ assertThat(ResourceIds.toInstanceIdentifier(eth0),
+ is("/ietf-interfaces:interfaces/interface[name=\"eth0\"]"));
+
+
+ assertThat(ResourceIds.toInstanceIdentifier(ResourceIds.concat(toResourceId(deviceId), eth0)),
+ is("/org.onosproject.dcs:devices/device[device-id=\"test:device-identifier\"]"
+ + "/ietf-interfaces:interfaces/interface[name=\"eth0\"]"));
+ }
+
+ @Test
public void testConcat() {
ResourceId devices = ResourceId.builder()
.addBranchPointSchema(DeviceResourceIds.DEVICES_NAME,