From b731e2f1dd0972409b136aebc7b463dd72c9cfad Mon Sep 17 00:00:00 2001 From: CNlucius Date: Tue, 13 Sep 2016 11:40:12 +0800 Subject: ONOSFW-171 O/S-SFC-ONOS scenario documentation Change-Id: I51ae1cf736ea24ab6680f8edca1b2bf5dd598365 Signed-off-by: CNlucius --- .../net/intent/impl/ObjectiveTrackerTest.java | 328 --------------------- 1 file changed, 328 deletions(-) delete mode 100644 framework/src/onos/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java (limited to 'framework/src/onos/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java') diff --git a/framework/src/onos/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java b/framework/src/onos/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java deleted file mode 100644 index 7cee0d0e..00000000 --- a/framework/src/onos/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java +++ /dev/null @@ -1,328 +0,0 @@ -/* - * Copyright 2014-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.net.intent.impl; - -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onlab.junit.TestUtils; -import org.onlab.junit.TestUtils.TestUtilsException; -import org.onosproject.core.IdGenerator; -import org.onosproject.event.Event; -import org.onosproject.net.Device; -import org.onosproject.net.DeviceId; -import org.onosproject.net.Link; -import org.onosproject.net.NetworkResource; -import org.onosproject.net.PortNumber; -import org.onosproject.net.device.DeviceEvent; -import org.onosproject.net.device.DeviceListener; -import org.onosproject.net.intent.Intent; -import org.onosproject.net.intent.Key; -import org.onosproject.net.intent.MockIdGenerator; -import org.onosproject.net.link.LinkEvent; -import org.onosproject.net.newresource.ResourceEvent; -import org.onosproject.net.newresource.ResourceListener; -import org.onosproject.net.newresource.ResourcePath; -import org.onosproject.net.topology.Topology; -import org.onosproject.net.topology.TopologyEvent; -import org.onosproject.net.topology.TopologyListener; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; - -import static org.easymock.EasyMock.createMock; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; -import static org.onosproject.net.newresource.ResourceEvent.Type.*; -import static org.onosproject.net.NetTestTools.APP_ID; -import static org.onosproject.net.NetTestTools.device; -import static org.onosproject.net.NetTestTools.link; - -/** - * Tests for the objective tracker. - */ -public class ObjectiveTrackerTest { - private static final int WAIT_TIMEOUT_SECONDS = 2; - private Topology topology; - private ObjectiveTracker tracker; - private TestTopologyChangeDelegate delegate; - private List reasons; - private TopologyListener listener; - private DeviceListener deviceListener; - private ResourceListener resourceListener; - private IdGenerator mockGenerator; - - /** - * Initialization shared by all test cases. - * - * @throws TestUtilsException if any filed look ups fail - */ - @Before - public void setUp() throws TestUtilsException { - topology = createMock(Topology.class); - tracker = new ObjectiveTracker(); - delegate = new TestTopologyChangeDelegate(); - tracker.setDelegate(delegate); - reasons = new LinkedList<>(); - listener = TestUtils.getField(tracker, "listener"); - deviceListener = TestUtils.getField(tracker, "deviceListener"); - resourceListener = TestUtils.getField(tracker, "resourceListener"); - mockGenerator = new MockIdGenerator(); - Intent.bindIdGenerator(mockGenerator); - } - - /** - * Code to clean up shared by all test case. - */ - @After - public void tearDown() { - tracker.unsetDelegate(delegate); - Intent.unbindIdGenerator(mockGenerator); - } - - /** - * Topology change delegate mock that tracks the events coming into it - * and saves them. It provides a latch so that tests can wait for events - * to be generated. - */ - static class TestTopologyChangeDelegate implements TopologyChangeDelegate { - - CountDownLatch latch = new CountDownLatch(1); - List intentIdsFromEvent; - boolean compileAllFailedFromEvent; - - @Override - public void triggerCompile(Iterable intentKeys, - boolean compileAllFailed) { - intentIdsFromEvent = Lists.newArrayList(intentKeys); - compileAllFailedFromEvent = compileAllFailed; - latch.countDown(); - } - } - - /** - * Tests an event with no associated reasons. - * - * @throws InterruptedException if the latch wait fails. - */ - @Test - public void testEventNoReasons() throws InterruptedException { - final TopologyEvent event = new TopologyEvent( - TopologyEvent.Type.TOPOLOGY_CHANGED, - topology, - null); - - listener.event(event); - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(0)); - assertThat(delegate.compileAllFailedFromEvent, is(true)); - } - - /** - * Tests an event for a link down where none of the reasons match - * currently installed intents. - * - * @throws InterruptedException if the latch wait fails. - */ - @Test - public void testEventLinkDownNoMatches() throws InterruptedException { - final Link link = link("src", 1, "dst", 2); - final LinkEvent linkEvent = new LinkEvent(LinkEvent.Type.LINK_REMOVED, link); - reasons.add(linkEvent); - - final TopologyEvent event = new TopologyEvent( - TopologyEvent.Type.TOPOLOGY_CHANGED, - topology, - reasons); - - listener.event(event); - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(0)); - assertThat(delegate.compileAllFailedFromEvent, is(false)); - } - - /** - * Tests an event for a link being added. - * - * @throws InterruptedException if the latch wait fails. - */ - @Test - public void testEventLinkAdded() throws InterruptedException { - final Link link = link("src", 1, "dst", 2); - final LinkEvent linkEvent = new LinkEvent(LinkEvent.Type.LINK_ADDED, link); - reasons.add(linkEvent); - - final TopologyEvent event = new TopologyEvent( - TopologyEvent.Type.TOPOLOGY_CHANGED, - topology, - reasons); - - listener.event(event); - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(0)); - assertThat(delegate.compileAllFailedFromEvent, is(true)); - } - - /** - * Tests an event for a link down where the link matches existing intents. - * - * @throws InterruptedException if the latch wait fails. - */ - @Test - public void testEventLinkDownMatch() throws Exception { - final Link link = link("src", 1, "dst", 2); - final LinkEvent linkEvent = new LinkEvent(LinkEvent.Type.LINK_REMOVED, link); - reasons.add(linkEvent); - - final TopologyEvent event = new TopologyEvent( - TopologyEvent.Type.TOPOLOGY_CHANGED, - topology, - reasons); - - final Key key = Key.of(0x333L, APP_ID); - Collection resources = ImmutableSet.of(link); - tracker.addTrackedResources(key, resources); - - listener.event(event); - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(1)); - assertThat(delegate.compileAllFailedFromEvent, is(false)); - assertThat(delegate.intentIdsFromEvent.get(0).toString(), - equalTo("0x333")); - } - - /** - * Tests a resource available event. - * - * @throws InterruptedException if the latch wait fails. - */ - @Test - public void testResourceEvent() throws Exception { - ResourceEvent event = new ResourceEvent(RESOURCE_ADDED, - ResourcePath.discrete(DeviceId.deviceId("a"), PortNumber.portNumber(1))); - resourceListener.event(event); - - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(0)); - assertThat(delegate.compileAllFailedFromEvent, is(true)); - } - - /** - * Tests an event for a host becoming available that matches an intent. - * - * @throws InterruptedException if the latch wait fails. - */ - - @Test - public void testEventHostAvailableMatch() throws Exception { - final Device host = device("host1"); - - final DeviceEvent deviceEvent = - new DeviceEvent(DeviceEvent.Type.DEVICE_ADDED, host); - reasons.add(deviceEvent); - - final Key key = Key.of(0x333L, APP_ID); - Collection resources = ImmutableSet.of(host.id()); - tracker.addTrackedResources(key, resources); - - deviceListener.event(deviceEvent); - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(1)); - assertThat(delegate.compileAllFailedFromEvent, is(true)); - assertThat(delegate.intentIdsFromEvent.get(0).toString(), - equalTo("0x333")); - } - - /** - * Tests an event for a host becoming unavailable that matches an intent. - * - * @throws InterruptedException if the latch wait fails. - */ - - @Test - public void testEventHostUnavailableMatch() throws Exception { - final Device host = device("host1"); - - final DeviceEvent deviceEvent = - new DeviceEvent(DeviceEvent.Type.DEVICE_REMOVED, host); - reasons.add(deviceEvent); - - final Key key = Key.of(0x333L, APP_ID); - Collection resources = ImmutableSet.of(host.id()); - tracker.addTrackedResources(key, resources); - - deviceListener.event(deviceEvent); - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(1)); - assertThat(delegate.compileAllFailedFromEvent, is(false)); - assertThat(delegate.intentIdsFromEvent.get(0).toString(), - equalTo("0x333")); - } - - /** - * Tests an event for a host becoming available that matches an intent. - * - * @throws InterruptedException if the latch wait fails. - */ - - @Test - public void testEventHostAvailableNoMatch() throws Exception { - final Device host = device("host1"); - - final DeviceEvent deviceEvent = - new DeviceEvent(DeviceEvent.Type.DEVICE_ADDED, host); - reasons.add(deviceEvent); - - deviceListener.event(deviceEvent); - assertThat( - delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), - is(true)); - - assertThat(delegate.intentIdsFromEvent, hasSize(0)); - assertThat(delegate.compileAllFailedFromEvent, is(true)); - } - - -} -- cgit 1.2.3-korg