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%2FMediaTypesTest.java;fp=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frestconf%2Fimpl%2Ftest%2FMediaTypesTest.java;h=0000000000000000000000000000000000000000;hb=89b8b59cd26fd4810293ff14386eb29a71da9fac;hp=a00b0d1fc6830aa9b5c2fba93af22c4867b0f57d;hpb=9ba2b4eca79bcc0e78099b133296801c8d45a6c4;p=controller.git diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/MediaTypesTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/MediaTypesTest.java deleted file mode 100644 index a00b0d1fc6..0000000000 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/MediaTypesTest.java +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.controller.sal.restconf.impl.test; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.opendaylight.controller.sal.restconf.impl.test.RestOperationUtils.JSON; -import static org.opendaylight.controller.sal.restconf.impl.test.RestOperationUtils.XML; -import java.io.IOException; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.UriInfo; -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.test.JerseyTest; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; -import org.opendaylight.controller.sal.rest.api.Draft02; -import org.opendaylight.controller.sal.rest.api.RestconfService; -import org.opendaylight.controller.sal.rest.impl.JsonNormalizedNodeBodyReader; -import org.opendaylight.controller.sal.rest.impl.NormalizedNodeJsonBodyWriter; -import org.opendaylight.controller.sal.rest.impl.NormalizedNodeXmlBodyWriter; -import org.opendaylight.controller.sal.rest.impl.RestconfDocumentedExceptionMapper; -import org.opendaylight.controller.sal.rest.impl.XmlNormalizedNodeBodyReader; -import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; - -public class MediaTypesTest extends JerseyTest { - - private static RestconfService restconfService; - private static String jsonData; - private static String xmlData; - - @BeforeClass - public static void init() throws IOException { - restconfService = mock(RestconfService.class); - final String jsonPath = RestconfImplTest.class.getResource("/parts/ietf-interfaces_interfaces.json").getPath(); - jsonData = TestUtils.loadTextFile(jsonPath); - final InputStream xmlStream = RestconfImplTest.class.getResourceAsStream("/parts/ietf-interfaces_interfaces.xml"); - xmlData = TestUtils.getDocumentInPrintableForm(TestUtils.loadDocumentFrom(xmlStream)); - } - - @Override - protected Application configure() { - /* enable/disable Jersey logs to console */ - // enable(TestProperties.LOG_TRAFFIC); - // enable(TestProperties.DUMP_ENTITY); - // enable(TestProperties.RECORD_LOG_LEVEL); - // set(TestProperties.RECORD_LOG_LEVEL, Level.ALL.intValue()); - ResourceConfig resourceConfig = new ResourceConfig(); - resourceConfig = resourceConfig.registerInstances(restconfService, new NormalizedNodeJsonBodyWriter(), - new NormalizedNodeXmlBodyWriter(), new XmlNormalizedNodeBodyReader(), new JsonNormalizedNodeBodyReader()); - resourceConfig.registerClasses(RestconfDocumentedExceptionMapper.class); - return resourceConfig; - } - - @Test - @Ignore - public void testPostOperationsWithInputDataMediaTypes() throws UnsupportedEncodingException { - final String uriPrefix = "/operations/"; - final String uriPath = "ietf-interfaces:interfaces"; - final String uri = uriPrefix + uriPath; - when(restconfService.invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class))).thenReturn(null); - post(uri, Draft02.MediaTypes.OPERATION + JSON, Draft02.MediaTypes.OPERATION + JSON, jsonData); - verify(restconfService, times(1)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, Draft02.MediaTypes.OPERATION + XML, Draft02.MediaTypes.OPERATION + XML, xmlData); - verify(restconfService, times(2)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, jsonData); - verify(restconfService, times(3)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, MediaType.APPLICATION_XML, MediaType.APPLICATION_XML, xmlData); - verify(restconfService, times(4)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, MediaType.TEXT_XML, MediaType.TEXT_XML, xmlData); - verify(restconfService, times(5)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, MediaType.TEXT_XML, xmlData); - verify(restconfService, times(6)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - - // negative tests - post(uri, MediaType.TEXT_PLAIN, MediaType.TEXT_XML, xmlData); - verify(restconfService, times(6)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, MediaType.TEXT_XML, MediaType.TEXT_PLAIN, xmlData); - verify(restconfService, times(6)).invokeRpc(eq(uriPath), any(NormalizedNodeContext.class), any(UriInfo.class)); - } - - @Test - public void testGetConfigMediaTypes() throws UnsupportedEncodingException { - final String uriPrefix = "/config/"; - final String uriPath = "ietf-interfaces:interfaces"; - final String uri = uriPrefix + uriPath; - when(restconfService.readConfigurationData(eq(uriPath), any(UriInfo.class))).thenReturn(null); - get(uri, Draft02.MediaTypes.DATA + JSON); - verify(restconfService, times(1)).readConfigurationData(eq(uriPath), any(UriInfo.class)); - get(uri, Draft02.MediaTypes.DATA + XML); - verify(restconfService, times(2)).readConfigurationData(eq(uriPath), any(UriInfo.class)); - get(uri, MediaType.APPLICATION_JSON); - verify(restconfService, times(3)).readConfigurationData(eq(uriPath), any(UriInfo.class)); - get(uri, MediaType.APPLICATION_XML); - verify(restconfService, times(4)).readConfigurationData(eq(uriPath), any(UriInfo.class)); - get(uri, MediaType.TEXT_XML); - verify(restconfService, times(5)).readConfigurationData(eq(uriPath), any(UriInfo.class)); - - // negative tests - get(uri, MediaType.TEXT_PLAIN); - verify(restconfService, times(5)).readConfigurationData(eq(uriPath), any(UriInfo.class)); - } - - @Test - public void testGetOperationalMediaTypes() throws UnsupportedEncodingException { - final String uriPrefix = "/operational/"; - final String uriPath = "ietf-interfaces:interfaces"; - final String uri = uriPrefix + uriPath; - when(restconfService.readOperationalData(eq(uriPath), any(UriInfo.class))).thenReturn(null); - get(uri, Draft02.MediaTypes.DATA + JSON); - verify(restconfService, times(1)).readOperationalData(eq(uriPath), any(UriInfo.class)); - get(uri, Draft02.MediaTypes.DATA + XML); - verify(restconfService, times(2)).readOperationalData(eq(uriPath), any(UriInfo.class)); - get(uri, MediaType.APPLICATION_JSON); - verify(restconfService, times(3)).readOperationalData(eq(uriPath), any(UriInfo.class)); - get(uri, MediaType.APPLICATION_XML); - verify(restconfService, times(4)).readOperationalData(eq(uriPath), any(UriInfo.class)); - get(uri, MediaType.TEXT_XML); - verify(restconfService, times(5)).readOperationalData(eq(uriPath), any(UriInfo.class)); - - // negative tests - get(uri, MediaType.TEXT_PLAIN); - verify(restconfService, times(5)).readOperationalData(eq(uriPath), any(UriInfo.class)); - } - - @Test - @Ignore - public void testPutConfigMediaTypes() throws UnsupportedEncodingException { - final String uriPrefix = "/config/"; - final String uriPath = "ietf-interfaces:interfaces"; - final String uri = uriPrefix + uriPath; - when(restconfService.updateConfigurationData(eq(uriPath), any(NormalizedNodeContext.class))).thenReturn(null); - put(uri, null, Draft02.MediaTypes.DATA + JSON, jsonData); - verify(restconfService, times(1)).updateConfigurationData(eq(uriPath), any(NormalizedNodeContext.class)); - put(uri, null, Draft02.MediaTypes.DATA + XML, xmlData); - verify(restconfService, times(2)).updateConfigurationData(eq(uriPath), any(NormalizedNodeContext.class)); - put(uri, null, MediaType.APPLICATION_JSON, jsonData); - verify(restconfService, times(3)).updateConfigurationData(eq(uriPath), any(NormalizedNodeContext.class)); - put(uri, null, MediaType.APPLICATION_XML, xmlData); - verify(restconfService, times(4)).updateConfigurationData(eq(uriPath), any(NormalizedNodeContext.class)); - put(uri, null, MediaType.TEXT_XML, xmlData); - verify(restconfService, times(5)).updateConfigurationData(eq(uriPath), any(NormalizedNodeContext.class)); - put(uri, "fooMediaType", MediaType.TEXT_XML, xmlData); - verify(restconfService, times(6)).updateConfigurationData(eq(uriPath), any(NormalizedNodeContext.class)); - } - - @Test - @Ignore - public void testPostConfigWithPathMediaTypes() throws UnsupportedEncodingException { - final String uriPrefix = "/config/"; - final String uriPath = "ietf-interfaces:interfaces"; - final String uri = uriPrefix + uriPath; - when(restconfService.createConfigurationData(eq(uriPath), any(NormalizedNodeContext.class), - any(UriInfo.class))).thenReturn(null); - post(uri, null, Draft02.MediaTypes.DATA + JSON, jsonData); - verify(restconfService, times(1)).createConfigurationData(eq(uriPath), - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, Draft02.MediaTypes.DATA + XML, xmlData); - verify(restconfService, times(2)).createConfigurationData(eq(uriPath), - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, MediaType.APPLICATION_JSON, jsonData); - verify(restconfService, times(3)).createConfigurationData(eq(uriPath), - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, MediaType.APPLICATION_XML, xmlData); - verify(restconfService, times(4)).createConfigurationData(eq(uriPath), - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, MediaType.TEXT_XML, xmlData); - verify(restconfService, times(5)).createConfigurationData(eq(uriPath), - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, "fooMediaType", MediaType.TEXT_XML, xmlData); - verify(restconfService, times(6)).createConfigurationData(eq(uriPath), - any(NormalizedNodeContext.class), any(UriInfo.class)); - } - - @Test - @Ignore - public void testPostConfigMediaTypes() throws UnsupportedEncodingException { - final String uriPrefix = "/config/"; - final String uri = uriPrefix; - when(restconfService.createConfigurationData(any(NormalizedNodeContext.class), - any(UriInfo.class))).thenReturn(null); - post(uri, null, Draft02.MediaTypes.DATA + JSON, jsonData); - verify(restconfService, times(1)).createConfigurationData( - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, Draft02.MediaTypes.DATA + XML, xmlData); - verify(restconfService, times(2)).createConfigurationData( - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, MediaType.APPLICATION_JSON, jsonData); - verify(restconfService, times(3)).createConfigurationData( - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, MediaType.APPLICATION_XML, xmlData); - verify(restconfService, times(4)).createConfigurationData( - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, null, MediaType.TEXT_XML, xmlData); - verify(restconfService, times(5)).createConfigurationData( - any(NormalizedNodeContext.class), any(UriInfo.class)); - post(uri, "fooMediaType", MediaType.TEXT_XML, xmlData); - verify(restconfService, times(6)).createConfigurationData( - any(NormalizedNodeContext.class), any(UriInfo.class)); - } - - @Test - public void testDeleteConfigMediaTypes() throws UnsupportedEncodingException { - final String uriPrefix = "/config/"; - final String uriPath = "ietf-interfaces:interfaces"; - final String uri = uriPrefix + uriPath; - when(restconfService.deleteConfigurationData(eq(uriPath))).thenReturn(null); - target(uri).request("fooMediaType").delete(); - verify(restconfService, times(1)).deleteConfigurationData(uriPath); - } - - private int get(final String uri, final String acceptMediaType) { - return target(uri).request(acceptMediaType).get().getStatus(); - } - - private int put(final String uri, final String acceptMediaType, final String contentTypeMediaType, final String data) { - if (acceptMediaType == null) { - return target(uri).request().put(Entity.entity(data, contentTypeMediaType)).getStatus(); - } - return target(uri).request(acceptMediaType).put(Entity.entity(data, contentTypeMediaType)).getStatus(); - } - - private int post(final String uri, final String acceptMediaType, final String contentTypeMediaType, final String data) { - if (acceptMediaType == null) { - if (contentTypeMediaType == null || data == null) { - return target(uri).request().post(null).getStatus(); - } - return target(uri).request().post(Entity.entity(data, contentTypeMediaType)).getStatus(); - } - if (contentTypeMediaType == null || data == null) { - return target(uri).request(acceptMediaType).post(null).getStatus(); - } - return target(uri).request(acceptMediaType).post(Entity.entity(data, contentTypeMediaType)).getStatus(); - } - -}