mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-21 20:31:00 +02:00
[ONOS-3163] Testing on Flow Classifier Manager
Change-Id: I3b9d7ba080dac7fa54284361fe7c181174c4d65b
This commit is contained in:
parent
fac0226ab9
commit
04da6cf196
@ -0,0 +1,146 @@
|
||||
/*
|
||||
* Copyright 2015 Open Networking Laboratory
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
package org.onosproject.vtnrsc.flowclassifier.impl;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.onlab.packet.IpPrefix;
|
||||
|
||||
import org.onosproject.vtnrsc.TenantId;
|
||||
import org.onosproject.vtnrsc.DefaultFlowClassifier;
|
||||
import org.onosproject.vtnrsc.FlowClassifierId;
|
||||
import org.onosproject.vtnrsc.VirtualPortId;
|
||||
import org.onosproject.vtnrsc.FlowClassifier;
|
||||
import org.onosproject.vtnrsc.util.VtnStorageServiceTest;
|
||||
|
||||
/**
|
||||
* Unit tests for FlowClassifierManager class.
|
||||
*/
|
||||
public class FlowClassifierManagerTest {
|
||||
|
||||
final String name = "FlowClassifier";
|
||||
final String description = "FlowClassifier";
|
||||
final String ethType = "IPv4";
|
||||
final String protocol = "udp";
|
||||
final int minSrcPortRange = 1024;
|
||||
final int maxSrcPortRange = 5000;
|
||||
final int minDstPortRange = 1024;
|
||||
final int maxDstPortRange = 5000;
|
||||
final FlowClassifierId flowClassifierId = FlowClassifierId.of("71111111-fc23-aeb6-f44b-56dc5e2fb3ae");
|
||||
final TenantId tenantId = TenantId.tenantId("8");
|
||||
final IpPrefix srcIpPrefix = IpPrefix.valueOf("0.0.0.0/0");
|
||||
final IpPrefix dstIpPrefix = IpPrefix.valueOf("100.100.100.100/0");
|
||||
final VirtualPortId virtualSrcPort = VirtualPortId.portId("100");
|
||||
final VirtualPortId virtualDstPort = VirtualPortId.portId("200");
|
||||
DefaultFlowClassifier.Builder flowClassifierBuilder = new DefaultFlowClassifier.Builder();
|
||||
FlowClassifierManager flowClassifierMgr = new FlowClassifierManager();
|
||||
FlowClassifier flowClassifier = null;
|
||||
private final VtnStorageServiceTest storageService = new VtnStorageServiceTest();
|
||||
|
||||
/**
|
||||
* Checks the operation of createFlowClassifier() method.
|
||||
*/
|
||||
@Test
|
||||
public void testCreateFlowClassifier() {
|
||||
// initialize flow classifier manager
|
||||
flowClassifierMgr.storageService = storageService;
|
||||
flowClassifierMgr.activate();
|
||||
|
||||
// create flow classifier
|
||||
flowClassifier = flowClassifierBuilder.setFlowClassifierId(flowClassifierId).setTenantId(tenantId)
|
||||
.setName(name).setDescription(description).setEtherType(ethType).setProtocol(protocol)
|
||||
.setMinSrcPortRange(minSrcPortRange).setMaxSrcPortRange(maxSrcPortRange)
|
||||
.setMinDstPortRange(minDstPortRange).setMaxDstPortRange(maxDstPortRange).setSrcIpPrefix(srcIpPrefix)
|
||||
.setDstIpPrefix(dstIpPrefix).setSrcPort(virtualSrcPort).setDstPort(virtualDstPort).build();
|
||||
assertThat(flowClassifierMgr.createFlowClassifier(flowClassifier), is(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the operation of exists() method.
|
||||
*/
|
||||
@Test
|
||||
public void testExists() {
|
||||
testCreateFlowClassifier();
|
||||
assertThat(flowClassifierMgr.exists(flowClassifierId), is(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the operation of getFlowClassifierCount() method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetFlowClassifierCount() {
|
||||
testCreateFlowClassifier();
|
||||
assertThat(flowClassifierMgr.getFlowClassifierCount(), is(1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the operation of getFlowClassifiers() method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetFlowClassifiers() {
|
||||
testCreateFlowClassifier();
|
||||
final Iterable<FlowClassifier> flowClassifierList = flowClassifierMgr.getFlowClassifiers();
|
||||
assertThat(flowClassifierList, is(notNullValue()));
|
||||
assertThat(flowClassifierList.iterator().hasNext(), is(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the operation of getFlowClassifier() method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetFlowClassifier() {
|
||||
testCreateFlowClassifier();
|
||||
assertThat(flowClassifier, is(notNullValue()));
|
||||
assertThat(flowClassifierMgr.getFlowClassifier(flowClassifierId), is(flowClassifier));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the operation of updateFlowClassifier() method.
|
||||
*/
|
||||
@Test
|
||||
public void testUpdateFlowClassifier() {
|
||||
// create a flow classifier
|
||||
testCreateFlowClassifier();
|
||||
|
||||
// new updates
|
||||
final String name2 = "FlowClassifier2";
|
||||
final String description2 = "FlowClassifier2";
|
||||
final String ethType2 = "IPv6";
|
||||
final String protocol2 = "tcp";
|
||||
final TenantId tenantId2 = TenantId.tenantId("10");
|
||||
final VirtualPortId virtualSrcPort2 = VirtualPortId.portId("300");
|
||||
final VirtualPortId virtualDstPort2 = VirtualPortId.portId("400");
|
||||
flowClassifier = flowClassifierBuilder.setFlowClassifierId(flowClassifierId)
|
||||
.setTenantId(tenantId2).setName(name2).setDescription(description2).setEtherType(ethType2)
|
||||
.setProtocol(protocol2).setMinSrcPortRange(minSrcPortRange).setMaxSrcPortRange(maxSrcPortRange)
|
||||
.setMinDstPortRange(minDstPortRange).setMaxDstPortRange(maxDstPortRange).setSrcIpPrefix(srcIpPrefix)
|
||||
.setDstIpPrefix(dstIpPrefix).setSrcPort(virtualSrcPort2).setDstPort(virtualDstPort2).build();
|
||||
assertThat(flowClassifierMgr.updateFlowClassifier(flowClassifier), is(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the operation of removeFlowClassifier() method.
|
||||
*/
|
||||
@Test
|
||||
public void testRemoveFlowClassifier() {
|
||||
testCreateFlowClassifier();
|
||||
assertThat(flowClassifierMgr.removeFlowClassifier(flowClassifierId), is(true));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user