/* * Copyright © 2021 Nokia, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.transportpce.tapi.provider; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.common.network.RequestProcessor; import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations; import org.opendaylight.transportpce.tapi.impl.TapiProvider; import org.opendaylight.transportpce.tapi.listeners.TapiPceListenerImpl; import org.opendaylight.transportpce.tapi.listeners.TapiRendererListenerImpl; import org.opendaylight.transportpce.tapi.listeners.TapiServiceHandlerListenerImpl; import org.opendaylight.transportpce.tapi.topology.TapiNetconfTopologyListener; import org.opendaylight.transportpce.tapi.topology.TapiOrLinkListener; import org.opendaylight.transportpce.tapi.topology.TapiPortMappingListener; import org.opendaylight.transportpce.tapi.utils.TapiListener; import org.opendaylight.transportpce.test.AbstractTest; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.TransportpceTapinetworkutilsService; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.OrgOpenroadmServiceService; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TapiCommonService; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.TapiConnectivityService; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.TapiTopologyService; public class TapiProviderTest extends AbstractTest { public static NetworkTransactionService networkTransactionService; @Mock RpcProviderService rpcProviderRegistry; @Mock OrgOpenroadmServiceService serviceHandler; @Mock ServiceDataStoreOperations serviceDataStoreOperations; @Mock TapiListener tapiListener; @Mock TransportpceTapinetworkutilsService tapiNetworkUtils; @Mock TapiPortMappingListener tapiPortMappingListener; @Mock TapiNetconfTopologyListener topologyListener; @Mock TapiOrLinkListener orLinkListener; @Mock TapiPceListenerImpl pceListenerImpl; @Mock TapiRendererListenerImpl rendererListenerImpl; @Mock TapiServiceHandlerListenerImpl serviceHandlerListenerImpl; private AutoCloseable closeable; @Before public void openMocks() { closeable = MockitoAnnotations.openMocks(this); } @BeforeClass public static void setUp() { networkTransactionService = new NetworkTransactionImpl( new RequestProcessor(getDataBroker())); } @Test public void testInitRegisterTapiToRpcRegistry() { TapiProvider provider = new TapiProvider(getDataBroker(), rpcProviderRegistry, serviceHandler, serviceDataStoreOperations, tapiListener, networkTransactionService, topologyListener, tapiPortMappingListener, tapiNetworkUtils, pceListenerImpl, rendererListenerImpl, serviceHandlerListenerImpl, getNotificationService(), orLinkListener); provider.init(); verify(rpcProviderRegistry, times(1)) .registerRpcImplementation(any(), any(TapiConnectivityService.class)); verify(rpcProviderRegistry, times(2)) .registerRpcImplementation(any(), any(TapiTopologyService.class)); verify(rpcProviderRegistry, times(2)) .registerRpcImplementation(any(), any(TapiCommonService.class)); } @After public void releaseMocks() throws Exception { closeable.close(); } }