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=b836839a21a1720f848aedabd2477e68205e6857;hb=76a0cefee19c4266a012037d5f5dd5556ca72645;hp=5f1153c49244698ed985962d1fbc3955eb0b1a5e;hpb=0c6d75de46e116e8d54ddda6aefd767a5b1e2257;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 5f1153c492..b836839a21 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,63 +7,69 @@ */ 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.BeforeClass; -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.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.NotificationOutputTypeGrouping.NotificationOutputType; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -public class WebSocketFactoryTest { +@ExtendWith(MockitoExtension.class) +class WebSocketFactoryTest extends AbstractNotificationListenerTest { + @Mock + private ScheduledExecutorService execService; + @Mock + private ServletUpgradeRequest upgradeRequest; + @Mock + private ServletUpgradeResponse upgradeResponse; + @Mock + private DOMDataBroker dataBroker; - 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(); + private ListenersBroker listenersBroker; + private WebSocketFactory webSocketFactory; + private String streamName; - private final WebSocketFactory webSocketFactory = new WebSocketFactory(mock(ScheduledExecutorService.class), - 5000, 2000); + @BeforeEach + void prepareListenersBroker() { + listenersBroker = new ListenersBroker.ServerSentEvents(dataBroker); + webSocketFactory = new WebSocketFactory(execService, listenersBroker, 5000, 2000); - @BeforeClass - public static void prepareListenersBroker() { - ListenersBroker.getInstance().registerDataChangeListener(TOASTER_YIID, REGISTERED_STREAM_NAME, - NotificationOutputTypeGrouping.NotificationOutputType.JSON); + streamName = listenersBroker.createStream(name -> new ListenerAdapter(name, NotificationOutputType.JSON, + listenersBroker, LogicalDatastoreType.CONFIGURATION, + YangInstanceIdentifier.of(QName.create("http://netconfcentral.org/ns/toaster", "2009-11-20", "toaster")))) + .getStreamName(); } @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); }