コード例 #1
0
  @Test
  public void getBridgeTest()
      throws StateAccessException, InterruptedException, KeeperException, SerializationException,
          BridgeZkManager.VxLanPortIdUpdateException {

    Setup.ensureZkDirectoryStructureExists(zkDir(), zkRoot);
    UUID bridgeId =
        getBridgeZkManager().create(new BridgeZkManager.BridgeConfig("test", null, null));
    TestBridgeBuilder bridgeBuilder = new TestBridgeBuilder();
    client.getBridge(bridgeId, bridgeBuilder);

    pollCallCounts(bridgeBuilder, 1);
    assertThat("Build is called", bridgeBuilder.getBuildCallsCount(), equalTo(1));

    // let's cause a bridge update
    getBridgeZkManager()
        .update(
            bridgeId,
            new BridgeZkManager.BridgeConfig("test1", getRandomChainId(), getRandomChainId()));

    pollCallCounts(bridgeBuilder, 2);
    assertThat("Bridge update was notified", bridgeBuilder.getBuildCallsCount(), equalTo(2));
  }
コード例 #2
0
  @Test
  public void MacPortMapTest()
      throws InterruptedException, KeeperException, SerializationException, StateAccessException {
    Setup.ensureZkDirectoryStructureExists(zkDir(), zkRoot);
    UUID bridgeId =
        getBridgeZkManager()
            .create(
                new BridgeZkManager.BridgeConfig("test", getRandomChainId(), getRandomChainId()));
    TestBridgeBuilder bridgeBuilder = new TestBridgeBuilder();
    client.getBridge(bridgeId, bridgeBuilder);

    pollCallCounts(bridgeBuilder, 1);
    assertThat("Build is called", bridgeBuilder.getBuildCallsCount(), equalTo(1));

    // and a new packet.
    MAC mac = MAC.random();
    UUID portUUID = UUID.randomUUID();

    ///////////
    // This sends two notifications.
    bridgeBuilder.simulateNewPacket(mac, portUUID);
    ///////////

    pollCallCounts(bridgeBuilder, 3);

    // make sure the  notifications sent what we expected.
    assertEquals(bridgeBuilder.getNotifiedMAC(), mac);
    assertNull(bridgeBuilder.getNotifiedUUID()[0]);
    assertEquals(portUUID, bridgeBuilder.getNotifiedUUID()[1]);

    // make sure the packet is there.
    assertEquals(portUUID, bridgeBuilder.getPort(mac));

    // remove the port.
    bridgeBuilder.removePort(mac, portUUID);

    pollCallCounts(bridgeBuilder, 5);

    // make sure the notifications sent what we expected.
    assertEquals(bridgeBuilder.getNotifiedMAC(), mac);
    assertEquals(portUUID, bridgeBuilder.getNotifiedUUID()[0]);
    assertNull(bridgeBuilder.getNotifiedUUID()[1]);

    // make sure that the mac <-> port association has been removed.
    assertNull(bridgeBuilder.getPort(mac));

    assertThat("Bridge update was notified", bridgeBuilder.getBuildCallsCount(), equalTo(1));
  }