package org.opennaas.extensions.network.repository.tests;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.opennaas.core.resources.ResourceException;
import org.opennaas.core.resources.descriptor.network.NetworkTopology;
import org.opennaas.extensions.network.mock.MockNetworkDescriptor;
import org.opennaas.extensions.network.model.NetworkModel;
import org.opennaas.extensions.network.model.NetworkModelHelper;
import org.opennaas.extensions.network.model.domain.NetworkDomain;
import org.opennaas.extensions.network.model.topology.ConnectionPoint;
import org.opennaas.extensions.network.model.topology.Device;
import org.opennaas.extensions.network.model.topology.Interface;
import org.opennaas.extensions.network.repository.NetworkMapperDescriptorToModel;
public class NetworkMapperModelToDescriptorTest {
@Test
public void testMockMapperNetworkElems() {
try {
NetworkTopology topology = MockNetworkDescriptor.newNetworkDescriptorWithNetworkDomain();
int topologyDeviceCount = topology.getDevices().size();
int topologyInterfacesCount = topology.getInterfaces().size();
int topologyDomainsCount = topology.getNetworkDomains().size();
int topologyLinksCount = 3; // has 3 links (2 of them bidi)
topologyInterfacesCount += 1; // has a link to an external interface
NetworkModel networkModel = NetworkMapperDescriptorToModel.descriptorToModel(topology);
Assert.assertNotNull(networkModel.getNetworkElements());
Assert.assertEquals(topologyDomainsCount, NetworkModelHelper.getDomains(networkModel).size());
Assert.assertEquals(topologyDeviceCount, NetworkModelHelper.getDevices(networkModel).size());
Assert.assertEquals(topologyInterfacesCount, NetworkModelHelper.getInterfaces(networkModel.getNetworkElements()).size());
Assert.assertEquals(topologyLinksCount, NetworkModelHelper.getLinks(networkModel).size());
} catch (ResourceException e) {
Assert.fail(e.getMessage());
}
}
@Test
public void testMockMapperModel() {
try {
NetworkModel networkModel = NetworkMapperDescriptorToModel.descriptorToModel(MockNetworkDescriptor
.newNetworkDescriptorWithNetworkDomain());
List<Device> devices = NetworkModelHelper.getDevices(networkModel.getNetworkElements());
Assert.assertNotNull(devices);
Assert.assertEquals(devices.size(), 3);
Assert.assertNotNull(devices);
Assert.assertEquals(devices.get(0).getName(), "router:R-AS2-1");
Assert.assertNotNull(devices.get(0).getInterfaces());
Assert.assertEquals(devices.get(0).getInterfaces().size(), 3);
Assert.assertEquals(devices.get(0).getInterfaces().get(0).getName(), "router:R-AS2-1:lt-1/2/0.51");
Assert.assertEquals(devices.get(0).getInterfaces().get(1).getName(), "router:R-AS2-1:lt-1/2/0.100");
Assert.assertEquals(devices.get(0).getInterfaces().get(2).getName(), "router:R-AS2-1:lo0.1");
for (ConnectionPoint iface : devices.get(0).getInterfaces()) {
Assert.assertTrue(iface instanceof Interface);
Assert.assertNotNull(((Interface) iface).getDevice());
Assert.assertEquals(((Interface) iface).getDevice(), devices.get(0));
}
Assert.assertEquals(devices.get(1).getName(), "router:R-AS2-2");
Assert.assertNotNull(devices.get(1).getInterfaces());
Assert.assertEquals(devices.get(1).getInterfaces().size(), 3);
Assert.assertEquals(devices.get(1).getInterfaces().get(0).getName(), "router:R-AS2-2:lt-1/2/0.102");
Assert.assertEquals(devices.get(1).getInterfaces().get(1).getName(), "router:R-AS2-2:lt-1/2/0.101");
Assert.assertEquals(devices.get(1).getInterfaces().get(2).getName(), "router:R-AS2-2:lo0.3");
for (ConnectionPoint iface : devices.get(1).getInterfaces()) {
Assert.assertTrue(iface instanceof Interface);
Assert.assertNotNull(((Interface) iface).getDevice());
Assert.assertEquals(((Interface) iface).getDevice(), devices.get(1));
}
Assert.assertEquals(devices.get(2).getName(), "router:R-AS2-3");
Assert.assertNotNull(devices.get(2).getInterfaces());
Assert.assertEquals(devices.get(2).getInterfaces().size(), 2);
Assert.assertEquals(devices.get(2).getInterfaces().get(0).getName(), "router:R-AS2-3:lt-1/2/0.103");
Assert.assertEquals(devices.get(2).getInterfaces().get(1).getName(), "router:R-AS2-3:lo0.4");
for (ConnectionPoint iface : devices.get(2).getInterfaces()) {
Assert.assertTrue(iface instanceof Interface);
Assert.assertNotNull(((Interface) iface).getDevice());
Assert.assertEquals(((Interface) iface).getDevice(), devices.get(2));
}
} catch (ResourceException e) {
Assert.fail(e.getMessage());
}
}
@Test
public void testMockMapperNetworkDomain() {
try {
NetworkModel networkModel = NetworkMapperDescriptorToModel.descriptorToModel(MockNetworkDescriptor
.newNetworkDescriptorWithNetworkDomain());
List<NetworkDomain> networkDomains = NetworkModelHelper.getDomains(networkModel.getNetworkElements());
Assert.assertNotNull(networkDomains);
Assert.assertEquals(networkDomains.size(), 1);
NetworkDomain networkDomain = (NetworkDomain) networkDomains.get(0);
Assert.assertEquals(networkDomain.getHasDevice().size(), 3);
} catch (ResourceException e) {
Assert.fail(e.getMessage());
}
}
}