mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-22 21:04:50 +00:00
Adding initial JUnit tests for ConnectusOvsdbClient
This commit is contained in:
@@ -15,7 +15,6 @@ import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.swing.UIDefaults.ActiveValue;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -276,7 +276,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
|
||||
}
|
||||
|
||||
private void monitorOvsdbStateTables(OvsdbClient ovsdbClient, String key) {
|
||||
|
||||
|
||||
LOG.info("Received ovsdb table state monitor request for {}", key);
|
||||
try {
|
||||
monitorWifiRadioStateDbTable(ovsdbClient, key);
|
||||
@@ -317,6 +317,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
|
||||
LOG.debug("Could not enable monitor for deletions to AWLAN_Node table. {}", e.getMessage());
|
||||
|
||||
}
|
||||
LOG.debug("Finished (re)setting monitors for AP {}", key);
|
||||
|
||||
}
|
||||
|
||||
@@ -505,21 +506,21 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
|
||||
}
|
||||
|
||||
private void monitorWifiVifStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
CompletableFuture<TableUpdates> vsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.wifiVifStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable,
|
||||
new MonitorRequest(new MonitorSelect(true, true, false, true)))),
|
||||
new MonitorCallback() {
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
LOG.info("Monitor callback received {}", tableUpdates);
|
||||
CompletableFuture<TableUpdates> vsCf = ovsdbClient
|
||||
.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiVifStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable,
|
||||
new MonitorRequest(new MonitorSelect(true, true, false, true)))),
|
||||
new MonitorCallback() {
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
LOG.info("Monitor callback received {}", tableUpdates);
|
||||
|
||||
extIntegrationInterface.wifiVIFStateDbTableUpdate(
|
||||
ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
|
||||
extIntegrationInterface.wifiVIFStateDbTableUpdate(
|
||||
ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
extIntegrationInterface.wifiVIFStateDbTableUpdate(ovsdbDao.getOpensyncAPVIFState(vsCf.join(), key, ovsdbClient),
|
||||
key);
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoSession;
|
||||
import org.mockito.quality.Strictness;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
|
||||
import com.vmware.ovsdb.callback.MonitorCallback;
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
import com.vmware.ovsdb.protocol.methods.MonitorRequests;
|
||||
import com.vmware.ovsdb.protocol.methods.TableUpdates;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
/**
|
||||
* @author dtoptygin
|
||||
*
|
||||
* Integration test for ProfileController
|
||||
*
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@ActiveProfiles(profiles = { "integration_test", }) // NOTE: these profiles will
|
||||
// be ADDED to the list of
|
||||
// active profiles
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncGatewayConnectusOvsdbClientTest.class)
|
||||
@Import(value = { OpensyncGatewayConnectusOvsdbClientTest.Config.class, ConnectusOvsdbClient.class,
|
||||
ConnectusOvsdbRedirector.class, NettySslContextConfig.class, OvsdbListenerConfig.class,
|
||||
OvsdbSessionMapInterface.class, OvsdbDao.class, OpensyncExternalIntegrationInterface.class,
|
||||
OvsdbSession.class })
|
||||
public class OpensyncGatewayConnectusOvsdbClientTest {
|
||||
|
||||
@MockBean
|
||||
private ConnectusOvsdbRedirector connectusOvsdbRedirector;
|
||||
|
||||
@MockBean
|
||||
private OpensyncExternalIntegrationInterface opensyncExternalIntegrationInterface;
|
||||
|
||||
@MockBean
|
||||
private OvsdbSessionMapInterface ovsdbSessionMapInterface;
|
||||
|
||||
@MockBean
|
||||
private OvsdbDao ovsdbDao;
|
||||
|
||||
@Mock(answer = Answers.RETURNS_MOCKS)
|
||||
private OvsdbClient ovsdbClient;
|
||||
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private CompletableFuture<TableUpdates> completableFuture;
|
||||
|
||||
@Autowired
|
||||
ConnectusOvsdbClient connectusOvsdbClient;
|
||||
|
||||
MockitoSession mockito;
|
||||
|
||||
@Before
|
||||
public void setup() throws OvsdbClientException {
|
||||
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession(Mockito.anyString()))
|
||||
.thenReturn(Mockito.mock(OvsdbSession.class, Mockito.RETURNS_DEEP_STUBS));
|
||||
Mockito.when(opensyncExternalIntegrationInterface.getApConfig(Mockito.anyString()))
|
||||
.thenReturn(Mockito.mock(OpensyncAPConfig.class, Mockito.RETURNS_DEEP_STUBS));
|
||||
Mockito.when(ovsdbClient.monitor(Mockito.anyString(), Mockito.anyString(), Mockito.any(MonitorRequests.class),
|
||||
Mockito.any(MonitorCallback.class))).thenReturn(completableFuture);
|
||||
|
||||
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
|
||||
|
||||
}
|
||||
|
||||
@After
|
||||
public void teardown() {
|
||||
mockito.finishMocking();
|
||||
}
|
||||
|
||||
@Configuration
|
||||
// @PropertySource({ "classpath:persistence-${envTarget:dev}.properties" })
|
||||
static class Config {
|
||||
@Bean
|
||||
public ConnectusOvsdbClient connectusOvsdbClient() {
|
||||
return new ConnectusOvsdbClient();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetConnectedClientIds() throws Exception {
|
||||
Set<String> connectedClientIds = new HashSet<String>();
|
||||
Mockito.when(ovsdbSessionMapInterface.getConnectedClientIds()).thenReturn(connectedClientIds);
|
||||
assert (connectedClientIds.equals(connectusOvsdbClient.getConnectedClientIds()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProcessConfigChanged() throws Exception {
|
||||
OvsdbSession ovsdbSession = Mockito.mock(OvsdbSession.class, Mockito.RETURNS_DEEP_STUBS);
|
||||
Mockito.when(ovsdbSession.getOvsdbClient()).thenReturn(ovsdbClient);
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(ovsdbSession);
|
||||
|
||||
connectusOvsdbClient.processConfigChanged("Test_Client_21P10C68818122");
|
||||
|
||||
Mockito.verify(ovsdbSessionMapInterface).getSession("Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbSession).getOvsdbClient();
|
||||
Mockito.verify(ovsdbClient).cancelMonitor(OvsdbDao.awlanNodeDbTable + "_Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbClient).monitor(Mockito.eq(OvsdbDao.ovsdbName),
|
||||
Mockito.eq(OvsdbDao.awlanNodeDbTable + "_Test_Client_21P10C68818122"),
|
||||
Mockito.any(MonitorRequests.class), Mockito.any(MonitorCallback.class));
|
||||
Mockito.verify(ovsdbClient).cancelMonitor(OvsdbDao.wifiRadioStateDbTable + "_Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbClient).monitor(Mockito.eq(OvsdbDao.ovsdbName),
|
||||
Mockito.eq(OvsdbDao.wifiRadioStateDbTable + "_Test_Client_21P10C68818122"),
|
||||
Mockito.any(MonitorRequests.class), Mockito.any(MonitorCallback.class));
|
||||
Mockito.verify(ovsdbClient).cancelMonitor(OvsdbDao.wifiVifStateDbTable + "_Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbClient).monitor(Mockito.eq(OvsdbDao.ovsdbName),
|
||||
Mockito.eq(OvsdbDao.wifiVifStateDbTable + "_Test_Client_21P10C68818122"),
|
||||
Mockito.any(MonitorRequests.class), Mockito.any(MonitorCallback.class));
|
||||
Mockito.verify(ovsdbClient).cancelMonitor(OvsdbDao.wifiVifStateDbTable + "_delete_Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbClient).monitor(Mockito.eq(OvsdbDao.ovsdbName),
|
||||
Mockito.eq(OvsdbDao.wifiVifStateDbTable + "_delete_Test_Client_21P10C68818122"),
|
||||
Mockito.any(MonitorRequests.class), Mockito.any(MonitorCallback.class));
|
||||
Mockito.verify(ovsdbClient).cancelMonitor(OvsdbDao.wifiInetStateDbTable + "_Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbClient).monitor(Mockito.eq(OvsdbDao.ovsdbName),
|
||||
Mockito.eq(OvsdbDao.wifiInetStateDbTable + "_Test_Client_21P10C68818122"),
|
||||
Mockito.any(MonitorRequests.class), Mockito.any(MonitorCallback.class));
|
||||
Mockito.verify(ovsdbClient)
|
||||
.cancelMonitor(OvsdbDao.wifiAssociatedClientsDbTable + "_delete_Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbClient).monitor(Mockito.eq(OvsdbDao.ovsdbName),
|
||||
Mockito.eq(OvsdbDao.wifiAssociatedClientsDbTable + "_delete_Test_Client_21P10C68818122"),
|
||||
Mockito.any(MonitorRequests.class), Mockito.any(MonitorCallback.class));
|
||||
Mockito.verify(ovsdbClient)
|
||||
.cancelMonitor(OvsdbDao.wifiAssociatedClientsDbTable + "_Test_Client_21P10C68818122");
|
||||
Mockito.verify(ovsdbClient).monitor(Mockito.eq(OvsdbDao.ovsdbName),
|
||||
Mockito.eq(OvsdbDao.wifiAssociatedClientsDbTable + "_Test_Client_21P10C68818122"),
|
||||
Mockito.any(MonitorRequests.class), Mockito.any(MonitorCallback.class));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProcessFirmwareDownload() throws Exception {
|
||||
|
||||
OvsdbSession ovsdbSession = Mockito.mock(OvsdbSession.class, Mockito.RETURNS_DEEP_STUBS);
|
||||
Mockito.when(ovsdbSession.getOvsdbClient()).thenReturn(ovsdbClient);
|
||||
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(ovsdbSession);
|
||||
|
||||
String expectedResult = "Initialized firmware download to Test_Client_21P10C68818122";
|
||||
|
||||
assert (connectusOvsdbClient.processFirmwareDownload("Test_Client_21P10C68818122",
|
||||
"http://127.0.0.1/~username/ea8300-2020-07-08-6632239/openwrt-ipq40xx-generic-linksys_ea8300-squashfs-sysupgrade.bin",
|
||||
"openwrt-ipq40xx-generic-linksys_ea8300-squashfs-sysupgrade", "username",
|
||||
"b0d03d8fba6b2261786ac97d49a629f2").equals(expectedResult));
|
||||
|
||||
Mockito.verify(ovsdbDao).configureFirmwareDownload(ovsdbClient, "Test_Client_21P10C68818122",
|
||||
"http://127.0.0.1/~username/ea8300-2020-07-08-6632239/openwrt-ipq40xx-generic-linksys_ea8300-squashfs-sysupgrade.bin",
|
||||
"openwrt-ipq40xx-generic-linksys_ea8300-squashfs-sysupgrade", "username",
|
||||
"b0d03d8fba6b2261786ac97d49a629f2");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user