X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frestconf%2Fimpl%2Ftest%2FXmlProvidersTest.java;h=7cce34ffb69dc8954da2e87535585347502eeaca;hb=dea24d658123f9059a3fbb3a650c2dbfdb480fcf;hp=5b0eea32126e5f85dc5c95d2c7b0ef52624c9a9d;hpb=b8e98bb0e826534f0164000ca2453cf23f8b0063;p=controller.git diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/XmlProvidersTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/XmlProvidersTest.java index 5b0eea3212..7cce34ffb6 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/XmlProvidersTest.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/XmlProvidersTest.java @@ -1,6 +1,7 @@ package org.opendaylight.controller.sal.restconf.impl.test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -11,6 +12,7 @@ import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.Future; @@ -34,11 +36,14 @@ import org.opendaylight.controller.sal.rest.api.RestconfService; import org.opendaylight.controller.sal.rest.impl.StructuredDataToXmlProvider; import org.opendaylight.controller.sal.rest.impl.XmlToCompositeNodeProvider; import org.opendaylight.controller.sal.restconf.impl.BrokerFacade; +import org.opendaylight.controller.sal.restconf.impl.CompositeNodeWrapper; import org.opendaylight.controller.sal.restconf.impl.ControllerContext; import org.opendaylight.controller.sal.restconf.impl.RestconfImpl; +import org.opendaylight.controller.sal.restconf.impl.SimpleNodeWrapper; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.Node; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -54,8 +59,8 @@ public class XmlProvidersTest extends JerseyTest { @BeforeClass public static void init() throws FileNotFoundException { - Set allModules = TestUtils.loadModules(RestconfImplTest.class.getResource("/full-versions/yangs") - .getPath()); + Set allModules = TestUtils.loadModulesFrom("/full-versions/yangs"); + assertNotNull(allModules); SchemaContext schemaContext = TestUtils.loadSchemaContext(allModules); controllerContext = ControllerContext.getInstance(); controllerContext.setSchemas(schemaContext); @@ -77,14 +82,31 @@ public class XmlProvidersTest extends JerseyTest { public void testStructuredDataToXmlProvider() throws FileNotFoundException, UnsupportedEncodingException { String uri = createUri("/datastore/", "ietf-interfaces:interfaces/interface/eth0"); - InputStream xmlStream = RestconfImplTest.class.getResourceAsStream("/parts/ietf-interfaces_interfaces.xml"); - CompositeNode loadedCompositeNode = TestUtils.loadCompositeNode(xmlStream); + CompositeNode loadedCompositeNode = prepareCompositeNodeWithIetfInterfacesInterfacesData(); when(brokerFacade.readOperationalData(any(InstanceIdentifier.class))).thenReturn(loadedCompositeNode); Response response = target(uri).request(MEDIA_TYPE).get(); assertEquals(200, response.getStatus()); } + private CompositeNode prepareCompositeNodeWithIetfInterfacesInterfacesData() { + CompositeNode intface; + try { + intface = new CompositeNodeWrapper(new URI("interface"), "interface"); + List> childs = new ArrayList<>(); + + childs.add(new SimpleNodeWrapper(new URI("name"), "name", "eth0")); + childs.add(new SimpleNodeWrapper(new URI("type"), "type", "ethernetCsmacd")); + childs.add(new SimpleNodeWrapper(new URI("enabled"), "enabled", Boolean.FALSE)); + childs.add(new SimpleNodeWrapper(new URI("description"), "description", "some interface")); + intface.setValue(childs); + return intface; + } catch (URISyntaxException e) { + } + + return null; + } + @Test public void testBadFormatXmlToCompositeNodeProvider() throws UnsupportedEncodingException, URISyntaxException { String uri = createUri("/operations/", "ietf-interfaces:interfaces/interface/eth0"); @@ -126,28 +148,36 @@ public class XmlProvidersTest extends JerseyTest { RpcResult rpcResult = new DummyRpcResult.Builder().result( TransactionStatus.COMMITED).build(); Future> dummyFuture = DummyFuture.builder().rpcResult(rpcResult).build(); - when(brokerFacade.commitOperationalDataPut(any(InstanceIdentifier.class), any(CompositeNode.class))) - .thenReturn(dummyFuture); when(brokerFacade.commitConfigurationDataPut(any(InstanceIdentifier.class), any(CompositeNode.class))) .thenReturn(dummyFuture); + when(brokerFacade.commitConfigurationDataPost(any(InstanceIdentifier.class), any(CompositeNode.class))) + .thenReturn(dummyFuture); String uri = createUri("/config/", "ietf-interfaces:interfaces/interface/eth0"); Response response = target(uri).request(MEDIA_TYPE_DRAFT02).put(entity); - assertEquals(204, response.getStatus()); - response = target(uri).request(MEDIA_TYPE_DRAFT02).post(entity); assertEquals(200, response.getStatus()); + uri = createUri("/config/", "ietf-interfaces:interfaces"); + response = target(uri).request(MEDIA_TYPE_DRAFT02).post(entity); + assertEquals(204, response.getStatus()); + uri = createUri("/config/", "ietf-interfaces:interfaces/interface/eth0"); response = target(uri).request(MEDIA_TYPE_DRAFT02).put(entity); - assertEquals(204, response.getStatus()); - response = target(uri).request(MEDIA_TYPE_DRAFT02).post(entity); assertEquals(200, response.getStatus()); + uri = createUri("/config/", "ietf-interfaces:interfaces"); + response = target(uri).request(MEDIA_TYPE_DRAFT02).post(entity); + assertEquals(204, response.getStatus()); + uri = createUri("/datastore/", "ietf-interfaces:interfaces/interface/eth0"); + entity = Entity.entity(xml, MEDIA_TYPE); response = target(uri).request(MEDIA_TYPE).put(entity); - assertEquals(204, response.getStatus()); - response = target(uri).request(MEDIA_TYPE).post(entity); assertEquals(200, response.getStatus()); + + uri = createUri("/datastore/", "ietf-interfaces:interfaces"); + entity = Entity.entity(xml, MEDIA_TYPE); + response = target(uri).request(MEDIA_TYPE).post(entity); + assertEquals(204, response.getStatus()); } @Test @@ -158,8 +188,6 @@ public class XmlProvidersTest extends JerseyTest { RpcResult rpcResult = new DummyRpcResult.Builder().result( TransactionStatus.FAILED).build(); Future> dummyFuture = DummyFuture.builder().rpcResult(rpcResult).build(); - when(brokerFacade.commitOperationalDataPut(any(InstanceIdentifier.class), any(CompositeNode.class))) - .thenReturn(dummyFuture); when(brokerFacade.commitConfigurationDataPut(any(InstanceIdentifier.class), any(CompositeNode.class))) .thenReturn(dummyFuture); @@ -176,9 +204,10 @@ public class XmlProvidersTest extends JerseyTest { assertEquals(500, response.getStatus()); uri = createUri("/datastore/", "ietf-interfaces:interfaces/interface/eth0"); - response = target(uri).request(MEDIA_TYPE).put(entity); + entity = Entity.entity(xml, MEDIA_TYPE); + response = target(uri).request().put(entity); assertEquals(500, response.getStatus()); - response = target(uri).request(MEDIA_TYPE).post(entity); + response = target(uri).request().accept(MEDIA_TYPE).post(entity); assertEquals(500, response.getStatus()); }