X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Frestconf%2Fnb%2Frfc8040%2Fstreams%2FWebSocketFactoryTest.java;h=c1658244a1d89a7261302c649bf71ab3e9440d0b;hb=e138c93b90d691a308ab300c1925519361bf2705;hp=0dc747beb18ecc8a0ef199cc9841a8c6ef830ec0;hpb=127aa084c9fbfec8bb2ef20404d0f7f94e044f55;p=netconf.git diff --git a/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/WebSocketFactoryTest.java b/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/WebSocketFactoryTest.java index 0dc747beb1..c1658244a1 100644 --- a/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/WebSocketFactoryTest.java +++ b/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/WebSocketFactoryTest.java @@ -7,64 +7,72 @@ */ package org.opendaylight.restconf.nb.rfc8040.streams; -import static org.hamcrest.CoreMatchers.instanceOf; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import java.net.URI; import java.util.concurrent.ScheduledExecutorService; import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; -import org.junit.Before; -import org.junit.Test; -import org.opendaylight.restconf.nb.rfc8040.streams.WebSocketInitializer.WebSocketFactory; -import org.opendaylight.restconf.nb.rfc8040.streams.listeners.ListenersBroker; -import org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.NotificationOutputTypeGrouping; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; +import org.opendaylight.restconf.nb.rfc8040.databind.DatabindProvider; +import org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev231103.NotificationOutputTypeGrouping.NotificationOutputType; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -public class WebSocketFactoryTest { - private static final String REGISTERED_STREAM_NAME = "data-change-event-subscription/" - + "toaster:toaster/datastore=CONFIGURATION/scope=SUBTREE"; - private static final YangInstanceIdentifier TOASTER_YIID = YangInstanceIdentifier.builder() - .node(QName.create("http://netconfcentral.org/ns/toaster", "2009-11-20", "toaster")) - .build(); +@ExtendWith(MockitoExtension.class) +class WebSocketFactoryTest extends AbstractNotificationListenerTest { + @Mock + private ScheduledExecutorService execService; + @Mock + private ServletUpgradeRequest upgradeRequest; + @Mock + private ServletUpgradeResponse upgradeResponse; + @Mock + private DOMDataBroker dataBroker; + @Mock + private DatabindProvider databindProvider; - private final ListenersBroker listenersBroker = new ListenersBroker(); + private ListenersBroker listenersBroker; + private WebSocketFactory webSocketFactory; + private String streamName; - private final WebSocketFactory webSocketFactory = new WebSocketFactory(mock(ScheduledExecutorService.class), - listenersBroker, 5000, 2000); + @BeforeEach + void prepareListenersBroker() { + listenersBroker = new ListenersBroker.ServerSentEvents(dataBroker); + webSocketFactory = new WebSocketFactory(execService, listenersBroker, 5000, 2000); - @Before - public void prepareListenersBroker() { - listenersBroker.registerDataChangeListener(TOASTER_YIID, REGISTERED_STREAM_NAME, - NotificationOutputTypeGrouping.NotificationOutputType.JSON); + streamName = listenersBroker.createStream(name -> new DataTreeChangeStream(listenersBroker, name, + NotificationOutputType.JSON, databindProvider, LogicalDatastoreType.CONFIGURATION, + YangInstanceIdentifier.of(QName.create("http://netconfcentral.org/ns/toaster", "2009-11-20", "toaster")))) + .name(); } @Test - public void createWebSocketSuccessfully() { - final ServletUpgradeRequest upgradeRequest = mock(ServletUpgradeRequest.class); - final ServletUpgradeResponse upgradeResponse = mock(ServletUpgradeResponse.class); - doReturn(URI.create('/' + REGISTERED_STREAM_NAME + '/')).when(upgradeRequest).getRequestURI(); + void createWebSocketSuccessfully() { + doReturn(URI.create("https://localhost:8181/rests/streams/" + streamName)) + .when(upgradeRequest).getRequestURI(); - final Object webSocket = webSocketFactory.createWebSocket(upgradeRequest, upgradeResponse); - assertThat(webSocket, instanceOf(WebSocketSessionHandler.class)); + assertInstanceOf(WebSocketSessionHandler.class, + webSocketFactory.createWebSocket(upgradeRequest, upgradeResponse)); verify(upgradeResponse).setSuccess(true); verify(upgradeResponse).setStatusCode(101); } @Test - public void createWebSocketUnsuccessfully() { - final ServletUpgradeRequest upgradeRequest = mock(ServletUpgradeRequest.class); - final ServletUpgradeResponse upgradeResponse = mock(ServletUpgradeResponse.class); - doReturn(URI.create('/' + REGISTERED_STREAM_NAME + '/' + "toasterStatus")) + void createWebSocketUnsuccessfully() { + doReturn(URI.create("https://localhost:8181/rests/streams/" + streamName + "/toasterStatus")) .when(upgradeRequest).getRequestURI(); - final Object webSocket = webSocketFactory.createWebSocket(upgradeRequest, upgradeResponse); - assertNull(webSocket); + assertNull(webSocketFactory.createWebSocket(upgradeRequest, upgradeResponse)); verify(upgradeResponse).setSuccess(false); verify(upgradeResponse).setStatusCode(404); }