package org.opennaas.extensions.genericnetwork.test.model.helpers; /* * #%L * OpenNaaS :: Generic Network * %% * Copyright (C) 2007 - 2014 FundaciĆ³ Privada i2CAT, Internet i InnovaciĆ³ a Catalunya * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ import org.apache.commons.lang.StringUtils; import org.junit.Assert; import org.junit.Test; import org.opennaas.extensions.genericnetwork.model.circuit.Circuit; import org.opennaas.extensions.genericnetwork.model.circuit.QoSPolicy; import org.opennaas.extensions.genericnetwork.model.circuit.request.CircuitRequest; import org.opennaas.extensions.genericnetwork.model.circuit.request.Destination; import org.opennaas.extensions.genericnetwork.model.circuit.request.Source; import org.opennaas.extensions.genericnetwork.model.helpers.CircuitParser; import org.opennaas.extensions.genericnetwork.model.helpers.CircuitRequestHelper; import org.opennaas.extensions.openflowswitch.model.FloodlightOFMatch; public class CircuitParserTest { private static final String SRC_IP = "192.168.1.10"; private static final String SRC_LINK_PORT = "eth1"; private static final String SRC_TRANSPORT_PORT = "80"; private static final String DST_IP = "192.168.1.11"; private static final String DST_LINK_PORT = "eth2"; private static final String DST_TRANSPORT_PORT = "80"; private static final String TOS = "4"; private static final int JITTER_MIN = 0; private static final int JITTER_MAX = 2; private static final int LATENCY_MIN = 0; private static final int LATENCY_MAX = 1; private static final int PACKET_LOSS_MIN = 0; private static final int PACKET_LOSS_MAX = 1; private static final int THROUGHPUT_MIN = 0; private static final int THROUGHPUT_MAX = 5; @Test public void circuitRequestToCircuitTest() { CircuitRequest request = generateSampleRequest(); Circuit circuit = CircuitParser.circuitRequestToCircuit(request); Assert.assertNotNull(circuit); Assert.assertTrue(StringUtils.isEmpty(circuit.getCircuitId())); Assert.assertNull(circuit.getRoute()); Assert.assertNotNull(circuit.getQos()); Assert.assertNotNull(circuit.getTrafficFilter()); FloodlightOFMatch match = circuit.getTrafficFilter(); Assert.assertEquals(SRC_IP, match.getSrcIp()); Assert.assertEquals(DST_IP, match.getDstIp()); Assert.assertEquals(SRC_TRANSPORT_PORT, match.getSrcPort()); Assert.assertEquals(DST_TRANSPORT_PORT, match.getDstPort()); Assert.assertEquals("2048", match.getEtherType()); Assert.assertTrue(Integer.valueOf(TOS) == Integer.valueOf(match.getTosBits()) * 4); QoSPolicy qos = circuit.getQos(); Assert.assertEquals(JITTER_MIN, qos.getMinJitter()); Assert.assertEquals(JITTER_MAX, qos.getMaxJitter()); Assert.assertEquals(LATENCY_MIN, qos.getMinLatency()); Assert.assertEquals(LATENCY_MAX, qos.getMaxLatency()); Assert.assertEquals(THROUGHPUT_MIN, qos.getMinThroughput()); Assert.assertEquals(THROUGHPUT_MAX, qos.getMaxThroughput()); Assert.assertEquals(PACKET_LOSS_MIN, qos.getMinPacketLoss()); Assert.assertEquals(PACKET_LOSS_MAX, qos.getMaxPacketLoss()); } private CircuitRequest generateSampleRequest() { Source source = CircuitRequestHelper.generateSource(SRC_IP, SRC_LINK_PORT, SRC_TRANSPORT_PORT); Destination destination = CircuitRequestHelper.generateDestination(DST_IP, DST_LINK_PORT, DST_TRANSPORT_PORT); QoSPolicy policy = generateSamplePolicy(); CircuitRequest request = CircuitRequestHelper.generateCircuitRequest(source, destination, TOS, policy, null); return request; } private QoSPolicy generateSamplePolicy() { QoSPolicy policy = CircuitRequestHelper.generateQoSPolicy(JITTER_MIN, JITTER_MAX, LATENCY_MIN, LATENCY_MAX, THROUGHPUT_MIN, THROUGHPUT_MAX, PACKET_LOSS_MIN, PACKET_LOSS_MAX); return policy; } }