import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import io.netty.util.concurrent.ScheduledFuture;
import io.netty.util.concurrent.SucceededFuture;
import java.net.InetSocketAddress;
+import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.aaa.encrypt.AAAEncryptionService;
+import org.opendaylight.netconf.api.CapabilityURN;
import org.opendaylight.netconf.client.NetconfClientDispatcher;
import org.opendaylight.netconf.client.NetconfClientSession;
+import org.opendaylight.netconf.client.mdsal.NetconfDeviceCapabilities;
import org.opendaylight.netconf.client.mdsal.NetconfDeviceSchema;
import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemas;
import org.opendaylight.netconf.client.mdsal.api.CredentialProvider;
import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceHandler;
import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceServices;
+import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceServices.Rpcs;
import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager;
import org.opendaylight.netconf.client.mdsal.api.SslHandlerFactoryProvider;
import org.opendaylight.netconf.client.mdsal.impl.DefaultBaseNetconfSchemas;
import org.opendaylight.yangtools.yang.common.Decimal64;
import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory;
-
@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class NetconfNodeHandlerTest {
private static final RemoteDeviceId DEVICE_ID = new RemoteDeviceId("netconf-topology",
private ScheduledFuture<?> scheduleFuture;
@Captor
private ArgumentCaptor<Runnable> scheduleCaptor;
+ @Mock
+ private EffectiveModelContext schemaContext;
private NetconfNodeHandler handler;
@BeforeClass
- public static final void beforeClass() throws Exception {
+ public static void beforeClass() throws Exception {
BASE_SCHEMAS = new DefaultBaseNetconfSchemas(new DefaultYangParserFactory());
}
@BeforeClass
- public static final void afterClass() throws Exception {
+ public static void afterClass() throws Exception {
BASE_SCHEMAS = null;
}
assertSuccessfulConnect();
assertEquals(1, handler.attempts());
+ final var schema = new NetconfDeviceSchema(NetconfDeviceCapabilities.empty(),
+ MountPointContext.of(schemaContext));
+ final var netconfSessionPreferences = NetconfSessionPreferences.fromStrings(List.of(CapabilityURN.CANDIDATE));
+ final var deviceServices = new RemoteDeviceServices(mock(Rpcs.Normalized.class), null);
+
// when the device is connected, we propagate the information
- // TODO: create non-null values
- doNothing().when(delegate).onDeviceConnected(null, null, null);
- handler.onDeviceConnected(null, null, null);
+ doNothing().when(delegate).onDeviceConnected(schemaCaptor.capture(), prefsCaptor.capture(),
+ servicesCaptor.capture());
+ handler.onDeviceConnected(schema, netconfSessionPreferences, deviceServices);
+
+ assertEquals(schema, schemaCaptor.getValue());
+ assertEquals(netconfSessionPreferences, prefsCaptor.getValue());
+ assertEquals(deviceServices, servicesCaptor.getValue());
assertEquals(0, handler.attempts());
}