X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-rfc8040%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Frestconf%2Fnb%2Frfc8040%2Frests%2Fservices%2Fimpl%2FRestconfStreamsSubscriptionServiceImplTest.java;h=b7d476fa075baa28298beb86238fe4360dc7c123;hb=b121b01510163f7182432c2de8341702ec960b8b;hp=764ea29c9eece7f11ac1a48e0f3c0a1b9ebdb38b;hpb=c9e58b14754cdc059ef63f870f74de65a5e0a15d;p=netconf.git diff --git a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImplTest.java b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImplTest.java index 764ea29c9e..b7d476fa07 100644 --- a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImplTest.java +++ b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfStreamsSubscriptionServiceImplTest.java @@ -16,6 +16,8 @@ import static org.mockito.Mockito.mock; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import java.lang.reflect.Field; +import java.net.URI; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -36,12 +38,14 @@ import org.mockito.MockitoAnnotations; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataChangeListener; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeService; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; +import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.restconf.common.context.NormalizedNodeContext; import org.opendaylight.restconf.common.errors.RestconfDocumentedException; +import org.opendaylight.restconf.common.util.SimpleUriInfo; import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils; import org.opendaylight.restconf.nb.rfc8040.handlers.DOMDataBrokerHandler; import org.opendaylight.restconf.nb.rfc8040.handlers.NotificationServiceHandler; @@ -54,6 +58,7 @@ import org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev14070 import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; +@SuppressWarnings("deprecation") public class RestconfStreamsSubscriptionServiceImplTest { private static final String URI = "/restconf/18/data/ietf-restconf-monitoring:restconf-state/streams/stream/" @@ -66,19 +71,16 @@ public class RestconfStreamsSubscriptionServiceImplTest { private UriInfo uriInfo; @Mock private NotificationServiceHandler notificationServiceHandler; - @Mock - private TransactionChainHandler transactionHandler; + private TransactionChainHandler transactionHandler; private SchemaContextHandler schemaHandler; + @SuppressWarnings("unchecked") @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); - final TransactionChainHandler txHandler = Mockito.mock(TransactionChainHandler.class); - final DOMTransactionChain domTx = Mockito.mock(DOMTransactionChain.class); - Mockito.when(this.transactionHandler.get()).thenReturn(domTx); - Mockito.when(txHandler.get()).thenReturn(domTx); + final DOMTransactionChain domTx = mock(DOMTransactionChain.class); final DOMDataWriteTransaction wTx = Mockito.mock(DOMDataWriteTransaction.class); Mockito.when(domTx.newWriteOnlyTransaction()).thenReturn(wTx); final DOMDataReadWriteTransaction rwTx = Mockito.mock(DOMDataReadWriteTransaction.class); @@ -88,21 +90,46 @@ public class RestconfStreamsSubscriptionServiceImplTest { Futures.immediateCheckedFuture(null); Mockito.when(rwTx.submit()).thenReturn(checkedFutureEmpty); Mockito.when(domTx.newReadWriteTransaction()).thenReturn(rwTx); - final CheckedFuture checked = Mockito.mock(CheckedFuture.class); + final CheckedFuture checked = mock(CheckedFuture.class); Mockito.when(wTx.submit()).thenReturn(checked); Mockito.when(checked.checkedGet()).thenReturn(null); - this.schemaHandler = new SchemaContextHandler(txHandler); final DOMDataBroker dataBroker = mock(DOMDataBroker.class); - final ListenerRegistration listener = mock(ListenerRegistration.class); + doReturn(domTx).when(dataBroker).createTransactionChain(any()); + + transactionHandler = new TransactionChainHandler(dataBroker); + schemaHandler = SchemaContextHandler.newInstance(transactionHandler, Mockito.mock(DOMSchemaService.class)); + + DOMDataTreeChangeService dataTreeChangeService = mock(DOMDataTreeChangeService.class); + doReturn(mock(ListenerRegistration.class)).when(dataTreeChangeService) + .registerDataTreeChangeListener(any(), any()); + + doReturn(Collections.singletonMap(DOMDataTreeChangeService.class, dataTreeChangeService)) + .when(dataBroker).getSupportedExtensions(); + doReturn(dataBroker).when(this.dataBrokerHandler).get(); - doReturn(listener).when(dataBroker).registerDataChangeListener(any(), any(), any(), any()); - final MultivaluedMap map = Mockito.mock(MultivaluedMap.class); + + final MultivaluedMap map = mock(MultivaluedMap.class); final Set>> set = new HashSet<>(); Mockito.when(map.entrySet()).thenReturn(set); Mockito.when(this.uriInfo.getQueryParameters()).thenReturn(map); + final UriBuilder baseUriBuilder = new LocalUriInfo().getBaseUriBuilder(); + Mockito.when(uriInfo.getBaseUri()).thenReturn(baseUriBuilder.build()); + Mockito.when(uriInfo.getBaseUriBuilder()).thenReturn(baseUriBuilder); this.schemaHandler.onGlobalContextUpdated( - YangParserTestUtils.parseYangSources(TestRestconfUtils.loadFiles("/notifications"))); + YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles("/notifications"))); + } + + private static class LocalUriInfo extends SimpleUriInfo { + + LocalUriInfo() { + super("/"); + } + + @Override + public URI getBaseUri() { + return UriBuilder.fromUri("http://localhost:8181").build(); + } } @BeforeClass @@ -128,7 +155,7 @@ public class RestconfStreamsSubscriptionServiceImplTest { @Test public void testSubscribeToStream() throws Exception { final UriBuilder uriBuilder = UriBuilder.fromUri(URI); - final ListenerAdapter createListener = Notificator.createListener( + Notificator.createListener( IdentifierCodec.deserialize("toaster:toaster/toasterStatus", this.schemaHandler.get()), "data-change-event-subscription/toaster:toaster/toasterStatus/datastore=OPERATIONAL/scope=ONE", NotificationOutputType.XML); @@ -141,7 +168,8 @@ public class RestconfStreamsSubscriptionServiceImplTest { "data-change-event-subscription/toaster:toaster/toasterStatus/datastore=OPERATIONAL/scope=ONE", this.uriInfo); assertEquals( - "ws://:8181/data-change-event-subscription/toaster:toaster/toasterStatus/datastore=OPERATIONAL/scope=ONE", + "ws://localhost:8181/data-change-event-subscription" + + "/toaster:toaster/toasterStatus/datastore=OPERATIONAL/scope=ONE", response.getNewHeaders().get("Location").toString()); }