Search in sources :

Example 1 with LinkStoreDelegate

use of org.onosproject.net.link.LinkStoreDelegate in project onos by opennetworkinglab.

the class SimpleLinkStoreTest method testEvents.

// If Delegates should be called only on remote events,
// then Simple* should never call them, thus not test required.
@Ignore("Ignore until Delegate spec. is clear.")
@Test
public final void testEvents() throws InterruptedException {
    final ConnectPoint d1P1 = new ConnectPoint(DID1, P1);
    final ConnectPoint d2P2 = new ConnectPoint(DID2, P2);
    final LinkKey linkId1 = LinkKey.linkKey(d1P1, d2P2);
    final CountDownLatch addLatch = new CountDownLatch(1);
    LinkStoreDelegate checkAdd = event -> {
        assertEquals(LINK_ADDED, event.type());
        assertLink(linkId1, INDIRECT, event.subject());
        addLatch.countDown();
    };
    final CountDownLatch updateLatch = new CountDownLatch(1);
    LinkStoreDelegate checkUpdate = event -> {
        assertEquals(LINK_UPDATED, event.type());
        assertLink(linkId1, DIRECT, event.subject());
        updateLatch.countDown();
    };
    final CountDownLatch removeLatch = new CountDownLatch(1);
    LinkStoreDelegate checkRemove = event -> {
        assertEquals(LINK_REMOVED, event.type());
        assertLink(linkId1, DIRECT, event.subject());
        removeLatch.countDown();
    };
    linkStore.setDelegate(checkAdd);
    putLink(linkId1, INDIRECT);
    assertTrue("Add event fired", addLatch.await(1, TimeUnit.SECONDS));
    linkStore.unsetDelegate(checkAdd);
    linkStore.setDelegate(checkUpdate);
    putLink(linkId1, DIRECT);
    assertTrue("Update event fired", updateLatch.await(1, TimeUnit.SECONDS));
    linkStore.unsetDelegate(checkUpdate);
    linkStore.setDelegate(checkRemove);
    linkStore.removeOrDownLink(d1P1, d2P2);
    assertTrue("Remove event fired", removeLatch.await(1, TimeUnit.SECONDS));
}
Also used : Iterables(com.google.common.collect.Iterables) BeforeClass(org.junit.BeforeClass) LinkEvent(org.onosproject.net.link.LinkEvent) PortNumber(org.onosproject.net.PortNumber) HashMap(java.util.HashMap) AnnotationKeys(org.onosproject.net.AnnotationKeys) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription) Link(org.onosproject.net.Link) ConnectPoint(org.onosproject.net.ConnectPoint) NetTestTools.assertAnnotationsEquals(org.onosproject.net.NetTestTools.assertAnnotationsEquals) Type(org.onosproject.net.link.LinkEvent.Type) After(org.junit.After) Map(java.util.Map) DeviceId.deviceId(org.onosproject.net.DeviceId.deviceId) Before(org.junit.Before) LinkKey(org.onosproject.net.LinkKey) AfterClass(org.junit.AfterClass) LinkStoreDelegate(org.onosproject.net.link.LinkStoreDelegate) Set(java.util.Set) Test(org.junit.Test) ProviderId(org.onosproject.net.provider.ProviderId) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) DefaultAnnotations(org.onosproject.net.DefaultAnnotations) Ignore(org.junit.Ignore) SparseAnnotations(org.onosproject.net.SparseAnnotations) LinkStore(org.onosproject.net.link.LinkStore) DeviceId(org.onosproject.net.DeviceId) Assert(org.junit.Assert) Type(org.onosproject.net.Link.Type) LinkKey(org.onosproject.net.LinkKey) LinkStoreDelegate(org.onosproject.net.link.LinkStoreDelegate) CountDownLatch(java.util.concurrent.CountDownLatch) ConnectPoint(org.onosproject.net.ConnectPoint) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 2 with LinkStoreDelegate

use of org.onosproject.net.link.LinkStoreDelegate in project onos by opennetworkinglab.

the class ECLinkStoreTest method testEvents.

// If Delegates should be called only on remote events,
// then Simple* should never call them, thus not test required.
@Ignore("Ignore until Delegate spec. is clear.")
@Test
public final void testEvents() throws InterruptedException {
    final ConnectPoint d1P1 = new ConnectPoint(DID1, P1);
    final ConnectPoint d2P2 = new ConnectPoint(DID2, P2);
    final LinkKey linkId1 = LinkKey.linkKey(d1P1, d2P2);
    final CountDownLatch addLatch = new CountDownLatch(1);
    LinkStoreDelegate checkAdd = event -> {
        assertEquals(LINK_ADDED, event.type());
        assertLink(linkId1, INDIRECT, event.subject());
        addLatch.countDown();
    };
    final CountDownLatch updateLatch = new CountDownLatch(1);
    LinkStoreDelegate checkUpdate = event -> {
        assertEquals(LINK_UPDATED, event.type());
        assertLink(linkId1, DIRECT, event.subject());
        updateLatch.countDown();
    };
    final CountDownLatch removeLatch = new CountDownLatch(1);
    LinkStoreDelegate checkRemove = event -> {
        assertEquals(LINK_REMOVED, event.type());
        assertLink(linkId1, DIRECT, event.subject());
        removeLatch.countDown();
    };
    linkStore.setDelegate(checkAdd);
    putLink(linkId1, INDIRECT);
    assertTrue("Add event fired", addLatch.await(1, TimeUnit.SECONDS));
    linkStore.unsetDelegate(checkAdd);
    linkStore.setDelegate(checkUpdate);
    putLink(linkId1, DIRECT);
    assertTrue("Update event fired", updateLatch.await(1, TimeUnit.SECONDS));
    linkStore.unsetDelegate(checkUpdate);
    linkStore.setDelegate(checkRemove);
    linkStore.removeLink(d1P1, d2P2);
    assertTrue("Remove event fired", removeLatch.await(1, TimeUnit.SECONDS));
}
Also used : LINK_ADDED(org.onosproject.net.link.LinkEvent.Type.LINK_ADDED) DeviceClockServiceAdapter(org.onosproject.net.device.DeviceClockServiceAdapter) PortNumber(org.onosproject.net.PortNumber) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription) Link(org.onosproject.net.Link) DefaultControllerNode(org.onosproject.cluster.DefaultControllerNode) ConnectPoint(org.onosproject.net.ConnectPoint) LINK_REMOVED(org.onosproject.net.link.LinkEvent.Type.LINK_REMOVED) INDIRECT(org.onosproject.net.Link.Type.INDIRECT) After(org.junit.After) Map(java.util.Map) MessageSubject(org.onosproject.store.cluster.messaging.MessageSubject) DeviceId.deviceId(org.onosproject.net.DeviceId.deviceId) LinkKey(org.onosproject.net.LinkKey) NodeId(org.onosproject.cluster.NodeId) LinkDescription(org.onosproject.net.link.LinkDescription) AfterClass(org.junit.AfterClass) LinkStoreDelegate(org.onosproject.net.link.LinkStoreDelegate) Set(java.util.Set) CountDownLatch(java.util.concurrent.CountDownLatch) DeviceClockService(org.onosproject.net.device.DeviceClockService) SparseAnnotations(org.onosproject.net.SparseAnnotations) ClusterCommunicationService(org.onosproject.store.cluster.messaging.ClusterCommunicationService) DeviceId(org.onosproject.net.DeviceId) DIRECT(org.onosproject.net.Link.Type.DIRECT) Iterables(com.google.common.collect.Iterables) BeforeClass(org.junit.BeforeClass) LinkEvent(org.onosproject.net.link.LinkEvent) HashMap(java.util.HashMap) ControllerNode(org.onosproject.cluster.ControllerNode) NetTestTools.assertAnnotationsEquals(org.onosproject.net.NetTestTools.assertAnnotationsEquals) Timestamp(org.onosproject.store.Timestamp) ACTIVE(org.onosproject.cluster.ControllerNode.State.ACTIVE) ExecutorService(java.util.concurrent.ExecutorService) LINK_UPDATED(org.onosproject.net.link.LinkEvent.Type.LINK_UPDATED) Before(org.junit.Before) IpAddress(org.onlab.packet.IpAddress) StaticClusterService(org.onosproject.store.cluster.StaticClusterService) ClusterMessageHandler(org.onosproject.store.cluster.messaging.ClusterMessageHandler) Test(org.junit.Test) ProviderId(org.onosproject.net.provider.ProviderId) MastershipBasedTimestamp(org.onosproject.store.impl.MastershipBasedTimestamp) EasyMock(org.easymock.EasyMock) TimeUnit(java.util.concurrent.TimeUnit) AtomicLong(java.util.concurrent.atomic.AtomicLong) DefaultAnnotations(org.onosproject.net.DefaultAnnotations) Ignore(org.junit.Ignore) EDGE(org.onosproject.net.Link.Type.EDGE) LinkStore(org.onosproject.net.link.LinkStore) MastershipServiceAdapter(org.onosproject.mastership.MastershipServiceAdapter) Assert(org.junit.Assert) Type(org.onosproject.net.Link.Type) LinkKey(org.onosproject.net.LinkKey) LinkStoreDelegate(org.onosproject.net.link.LinkStoreDelegate) CountDownLatch(java.util.concurrent.CountDownLatch) ConnectPoint(org.onosproject.net.ConnectPoint) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

Iterables (com.google.common.collect.Iterables)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 Set (java.util.Set)2 CountDownLatch (java.util.concurrent.CountDownLatch)2 TimeUnit (java.util.concurrent.TimeUnit)2 After (org.junit.After)2 AfterClass (org.junit.AfterClass)2 Assert (org.junit.Assert)2 Before (org.junit.Before)2 BeforeClass (org.junit.BeforeClass)2 Ignore (org.junit.Ignore)2 Test (org.junit.Test)2 ConnectPoint (org.onosproject.net.ConnectPoint)2 DefaultAnnotations (org.onosproject.net.DefaultAnnotations)2 DeviceId (org.onosproject.net.DeviceId)2 DeviceId.deviceId (org.onosproject.net.DeviceId.deviceId)2 Link (org.onosproject.net.Link)2 Type (org.onosproject.net.Link.Type)2 LinkKey (org.onosproject.net.LinkKey)2