Unify streams URI
[netconf.git] / restconf / restconf-nb / src / test / java / org / opendaylight / restconf / nb / rfc8040 / streams / WebSocketFactoryTest.java
index 5f1153c49244698ed985962d1fbc3955eb0b1a5e..813d1334914643852a9e31901d3e0993990a979f 100644 (file)
@@ -7,63 +7,68 @@
  */
 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.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.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope;
 import org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.NotificationOutputTypeGrouping;
 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 {
     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();
+            + "toaster:toaster/datastore=CONFIGURATION/scope=SUBTREE/JSON";
+
+    private final ListenersBroker listenersBroker = new ListenersBroker.ServerSentEvents();
+
+    @Mock
+    private ScheduledExecutorService execService;
+    @Mock
+    private ServletUpgradeRequest upgradeRequest;
+    @Mock
+    private ServletUpgradeResponse upgradeResponse;
 
-    private final WebSocketFactory webSocketFactory = new WebSocketFactory(mock(ScheduledExecutorService.class),
-            5000, 2000);
+    private WebSocketFactory webSocketFactory;
 
-    @BeforeClass
-    public static void prepareListenersBroker() {
-        ListenersBroker.getInstance().registerDataChangeListener(TOASTER_YIID, REGISTERED_STREAM_NAME,
-                NotificationOutputTypeGrouping.NotificationOutputType.JSON);
+    @BeforeEach
+    void prepareListenersBroker() {
+        webSocketFactory = new WebSocketFactory(execService, listenersBroker, 5000, 2000);
+
+        listenersBroker.registerDataChangeListener(MODEL_CONTEXT, LogicalDatastoreType.CONFIGURATION,
+            YangInstanceIdentifier.of(QName.create("http://netconfcentral.org/ns/toaster", "2009-11-20", "toaster")),
+            Scope.SUBTREE, NotificationOutputTypeGrouping.NotificationOutputType.JSON);
     }
 
     @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/" + REGISTERED_STREAM_NAME))
+            .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/" + REGISTERED_STREAM_NAME + "/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);
     }