X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Fsal-rest-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Frestconf%2Frestful%2Fservices%2Fimpl%2FRestconfDataServiceImplTest.java;h=5248586943642eb580f4b032de9075c6b672504e;hb=26754a8c040a9bcb9807dcbf2749d2a8d1105788;hp=485b522cf26e6c08ec3f9b631dce48578a2e4fb3;hpb=9c47997b7c185f02e8980cb127a48161aad916e3;p=netconf.git diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/restful/services/impl/RestconfDataServiceImplTest.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/restful/services/impl/RestconfDataServiceImplTest.java index 485b522cf2..5248586943 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/restful/services/impl/RestconfDataServiceImplTest.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/restful/services/impl/RestconfDataServiceImplTest.java @@ -22,6 +22,7 @@ import com.google.common.base.Optional; import com.google.common.util.concurrent.Futures; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import javax.ws.rs.core.MultivaluedHashMap; import javax.ws.rs.core.Response; @@ -227,6 +228,66 @@ public class RestconfDataServiceImplTest { dataService.readData("example-jukebox:jukebox", uriInfo); } + /** + * Read data from config datastore according to content parameter + */ + @Test + public void testReadDataConfigTest() { + final MultivaluedHashMap parameters = new MultivaluedHashMap<>(); + parameters.put("content", Collections.singletonList("config")); + + doReturn(parameters).when(uriInfo).getQueryParameters(); + doReturn(Futures.immediateCheckedFuture(Optional.of(buildBaseContConfig))).when(read) + .read(LogicalDatastoreType.CONFIGURATION, iidBase); + doReturn(Futures.immediateCheckedFuture(Optional.of(buildBaseContOperational))).when(read) + .read(LogicalDatastoreType.OPERATIONAL, iidBase); + + final Response response = dataService.readData("example-jukebox:jukebox", uriInfo); + + assertNotNull(response); + assertEquals(200, response.getStatus()); + + // response must contain only config data + final NormalizedNode data = ((NormalizedNodeContext) response.getEntity()).getData(); + + // config data present + assertTrue(((ContainerNode) data).getChild(buildPlayerCont.getIdentifier()).isPresent()); + assertTrue(((ContainerNode) data).getChild(buildLibraryCont.getIdentifier()).isPresent()); + + // state data absent + assertFalse(((ContainerNode) data).getChild(buildPlaylistList.getIdentifier()).isPresent()); + } + + /** + * Read data from operational datastore according to content parameter + */ + @Test + public void testReadDataOperationalTest() { + final MultivaluedHashMap parameters = new MultivaluedHashMap<>(); + parameters.put("content", Collections.singletonList("nonconfig")); + + doReturn(parameters).when(uriInfo).getQueryParameters(); + doReturn(Futures.immediateCheckedFuture(Optional.of(buildBaseContConfig))).when(read) + .read(LogicalDatastoreType.CONFIGURATION, iidBase); + doReturn(Futures.immediateCheckedFuture(Optional.of(buildBaseContOperational))).when(read) + .read(LogicalDatastoreType.OPERATIONAL, iidBase); + + final Response response = dataService.readData("example-jukebox:jukebox", uriInfo); + + assertNotNull(response); + assertEquals(200, response.getStatus()); + + // response must contain only operational data + final NormalizedNode data = ((NormalizedNodeContext) response.getEntity()).getData(); + + // state data present + assertTrue(((ContainerNode) data).getChild(buildPlayerCont.getIdentifier()).isPresent()); + assertTrue(((ContainerNode) data).getChild(buildPlaylistList.getIdentifier()).isPresent()); + + // config data absent + assertFalse(((ContainerNode) data).getChild(buildLibraryCont.getIdentifier()).isPresent()); + } + @Test public void testPutData() { final InstanceIdentifierContext iidContext = new InstanceIdentifierContext<>(iidBase, schemaNode, null, contextRef.get());