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 java.util.function.Consumer;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.swing.UIDefaults.ActiveValue;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|||||||
@@ -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("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 {
|
private void monitorWifiVifStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||||
CompletableFuture<TableUpdates> vsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
CompletableFuture<TableUpdates> vsCf = ovsdbClient
|
||||||
OvsdbDao.wifiVifStateDbTable + "_" + key,
|
.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiVifStateDbTable + "_" + key,
|
||||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable,
|
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable,
|
||||||
new MonitorRequest(new MonitorSelect(true, true, false, true)))),
|
new MonitorRequest(new MonitorSelect(true, true, false, true)))),
|
||||||
new MonitorCallback() {
|
new MonitorCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void update(TableUpdates tableUpdates) {
|
public void update(TableUpdates tableUpdates) {
|
||||||
LOG.info("Monitor callback received {}", tableUpdates);
|
LOG.info("Monitor callback received {}", tableUpdates);
|
||||||
|
|
||||||
extIntegrationInterface.wifiVIFStateDbTableUpdate(
|
extIntegrationInterface.wifiVIFStateDbTableUpdate(
|
||||||
ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
|
ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
extIntegrationInterface.wifiVIFStateDbTableUpdate(ovsdbDao.getOpensyncAPVIFState(vsCf.join(), key, ovsdbClient),
|
extIntegrationInterface.wifiVIFStateDbTableUpdate(ovsdbDao.getOpensyncAPVIFState(vsCf.join(), key, ovsdbClient),
|
||||||
key);
|
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