import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
-import org.opendaylight.controller.cluster.schema.provider.impl.YangTextSchemaSourceSerializationProxy;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMActionException;
import org.opendaylight.mdsal.dom.api.DOMActionResult;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
masterSchemaRepository.registerSchemaSourceListener(
TextToIRTransformer.create(masterSchemaRepository, masterSchemaRepository));
- doReturn(masterSchemaRepository).when(schemaResourceDTO).getSchemaRepository();
- doReturn(mockRegistry).when(schemaResourceDTO).getSchemaRegistry();
final NetconfTopologySetup setup = NetconfTopologySetup.builder()
.setActorSystem(system)
.setIdleTimeout(Duration.ofSeconds(1))
verify(mockSchemaRepository, times(2)).createEffectiveModelContextFactory();
}
- @Test(expected = MissingSchemaSourceException.class)
+ @Test
public void testMissingSchemaSourceOnMissingProvider() throws Exception {
- final SharedSchemaRepository repository = new SharedSchemaRepository("test");
+ final var repository = new SharedSchemaRepository("test");
- SchemaResourcesDTO schemaResourceDTO2 = mock(SchemaResourcesDTO.class);
- doReturn(repository).when(schemaResourceDTO2).getSchemaRegistry();
+ final var schemaResourceDTO2 = mock(SchemaResourcesDTO.class);
doReturn(repository).when(schemaResourceDTO2).getSchemaRepository();
- final NetconfTopologySetup setup = NetconfTopologySetup.builder()
+ final var setup = NetconfTopologySetup.builder()
.setActorSystem(system)
.setSchemaResourceDTO(schemaResourceDTO2)
.setIdleTimeout(Duration.ofSeconds(1))
.setBaseSchemaProvider(BASE_SCHEMAS)
.build();
- final Props props = NetconfNodeActor.props(setup, remoteDeviceId, TIMEOUT, mockMountPointService);
- ActorRef actor = TestActorRef.create(system, props, "master_messages_2");
+ final var props = NetconfNodeActor.props(setup, remoteDeviceId, TIMEOUT, mockMountPointService);
+ final var actor = TestActorRef.create(system, props, "master_messages_2");
- final SourceIdentifier sourceIdentifier = new SourceIdentifier("testID");
+ final var sourceIdentifier = new SourceIdentifier("testID");
- final ProxyYangTextSourceProvider proxyYangProvider =
- new ProxyYangTextSourceProvider(actor, system.dispatcher(), TIMEOUT);
+ final var proxyYangProvider = new ProxyYangTextSourceProvider(actor, system.dispatcher(), TIMEOUT);
- final Future<YangTextSchemaSourceSerializationProxy> resolvedSchemaFuture =
- proxyYangProvider.getYangTextSchemaSource(sourceIdentifier);
- Await.result(resolvedSchemaFuture, TIMEOUT.duration());
+ final var resolvedSchemaFuture = proxyYangProvider.getYangTextSchemaSource(sourceIdentifier);
+ final var ex = assertThrows(MissingSchemaSourceException.class,
+ () -> Await.result(resolvedSchemaFuture, TIMEOUT.duration()));
+ assertEquals("No providers registered for source SourceIdentifier [testID]", ex.getMessage());
}
@Test
public void testYangTextSchemaSourceRequest() throws Exception {
- final SourceIdentifier sourceIdentifier = new SourceIdentifier("testID");
-
- final ProxyYangTextSourceProvider proxyYangProvider =
- new ProxyYangTextSourceProvider(masterRef, system.dispatcher(), TIMEOUT);
+ doReturn(masterSchemaRepository).when(schemaResourceDTO).getSchemaRepository();
- final YangTextSource yangTextSchemaSource = new DelegatedYangTextSource(sourceIdentifier,
- CharSource.wrap("YANG"));
+ final var sourceIdentifier = new SourceIdentifier("testID");
- // Test success.
+ final var proxyYangProvider = new ProxyYangTextSourceProvider(masterRef, system.dispatcher(), TIMEOUT);
- final var schemaSourceReg = masterSchemaRepository.registerSchemaSource(
- id -> Futures.immediateFuture(yangTextSchemaSource),
- PotentialSchemaSource.create(sourceIdentifier, YangTextSource.class, 1));
+ final var yangTextSchemaSource = new DelegatedYangTextSource(sourceIdentifier, CharSource.wrap("YANG"));
- final Future<YangTextSchemaSourceSerializationProxy> resolvedSchemaFuture =
- proxyYangProvider.getYangTextSchemaSource(sourceIdentifier);
+ // Test success.
- final YangTextSchemaSourceSerializationProxy success = Await.result(resolvedSchemaFuture, TIMEOUT.duration());
+ try (var schemaSourceReg = masterSchemaRepository.registerSchemaSource(
+ id -> Futures.immediateFuture(yangTextSchemaSource),
+ PotentialSchemaSource.create(sourceIdentifier, YangTextSource.class, 1))) {
+ final var resolvedSchemaFuture = proxyYangProvider.getYangTextSchemaSource(sourceIdentifier);
+ final var success = Await.result(resolvedSchemaFuture, TIMEOUT.duration());
- assertEquals(sourceIdentifier, success.getRepresentation().sourceId());
- assertEquals("YANG", success.getRepresentation().read());
+ assertEquals(sourceIdentifier, success.getRepresentation().sourceId());
+ assertEquals("YANG", success.getRepresentation().read());
+ }
// Test missing source failure.
- schemaSourceReg.close();
-
- final MissingSchemaSourceException ex = assertThrows(MissingSchemaSourceException.class,
- () -> {
- final Future<YangTextSchemaSourceSerializationProxy> failedSchemaFuture =
- proxyYangProvider.getYangTextSchemaSource(sourceIdentifier);
- Await.result(failedSchemaFuture, TIMEOUT.duration());
- });
+ final var failedSchemaFuture = proxyYangProvider.getYangTextSchemaSource(sourceIdentifier);
+ final var ex = assertThrows(MissingSchemaSourceException.class,
+ () -> Await.result(failedSchemaFuture, TIMEOUT.duration()));
assertThat(ex.getMessage(), startsWith("No providers registered for source"));
assertThat(ex.getMessage(), containsString(sourceIdentifier.toString()));
}
assertTrue(slaveDomRPCService instanceof ProxyDOMRpcService);
final QName testQName = QName.create("", "TestQname");
- final ContainerNode outputNode = Builders.containerBuilder()
+ final ContainerNode outputNode = ImmutableNodes.newContainerBuilder()
.withNodeIdentifier(new NodeIdentifier(testQName))
.withChild(ImmutableNodes.leafNode(testQName, "foo")).build();
final RpcError rpcError = RpcResultBuilder.newError(ErrorType.RPC, null, "Rpc invocation failed.");
final DOMDataTreeIdentifier domDataTreeIdentifier = new DOMDataTreeIdentifier(LogicalDatastoreType.OPERATIONAL,
yangIIdPath);
- final ContainerNode outputNode = Builders.containerBuilder()
+ final ContainerNode outputNode = ImmutableNodes.newContainerBuilder()
.withNodeIdentifier(new NodeIdentifier(testQName))
.withChild(ImmutableNodes.leafNode(testQName, "foo")).build();
final YangInstanceIdentifier PATH = YangInstanceIdentifier.of();
final LogicalDatastoreType STORE = LogicalDatastoreType.CONFIGURATION;
- final ContainerNode NODE = Builders.containerBuilder()
+ final ContainerNode NODE = ImmutableNodes.newContainerBuilder()
.withNodeIdentifier(new NodeIdentifier(QName.create("", "cont")))
.build();