示例#1
0
  @Test
  public void testPending()
      throws L2pSecurityException, EncodingFailedException, SerializationException,
          InterruptedException, AgentException {
    adam.unlockPrivateKey("adamspass");
    eve.unlockPrivateKey("evespass");

    LocalNode testee = LocalNode.launchAgent(adam);

    MessageResultListener l =
        new MessageResultListener(4000) {
          @Override
          public void notifySuccess() {
            LocalNodeTest.testVariable = true;
          }
        };

    Message m = new Message(adam, eve, new PingPongContent());
    testee.sendMessage(m, l);

    Thread.sleep(2000);

    assertFalse(testVariable);
    assertFalse(l.isSuccess());
    assertFalse(l.isFinished());

    // launch another node hosting eve
    LocalNode.launchAgent(eve);
    Thread.sleep(LocalNode.getMaxMessageWait() + 3000);

    assertTrue(l.isSuccess());
    assertTrue(l.isFinished());
    assertTrue(testVariable);
  }
示例#2
0
  @Test
  public void testTimeout()
      throws EncodingFailedException, L2pSecurityException, SerializationException,
          InterruptedException, AgentException {
    adam.unlockPrivateKey("adamspass");

    LocalNode testee1 = LocalNode.launchAgent(adam);
    MessageResultListener l =
        new MessageResultListener(2000) {
          public void notifyTimeout() {
            LocalNodeTest.testVariable = true;
          }
        };
    Message m = new Message(adam, eve, new PingPongContent(), 1000);

    LocalNode.setPendingTimeOut(1000);

    testee1.sendMessage(m, l);

    Thread.sleep(30000);

    assertFalse(l.isSuccess());
    assertTrue(l.isTimedOut());
    assertEquals(0, l.getResults().length);
    assertTrue(testVariable);
  }
示例#3
0
  @Test
  public void testTwoNodes()
      throws L2pSecurityException, EncodingFailedException, SerializationException,
          InterruptedException, AgentException {
    adam.unlockPrivateKey("adamspass");
    eve.unlockPrivateKey("evespass");

    // launch to nodes with one agent each
    LocalNode testee1 = LocalNode.launchAgent(adam);
    LocalNode.launchAgent(eve);

    assertTrue(LocalNode.findAllNodesWithAgent(adam.getId()).length > 0);
    assertTrue(LocalNode.findAllNodesWithAgent(eve.getId()).length > 0);

    MessageResultListener l = new MessageResultListener(10000);
    Message m = new Message(adam, eve, new PingPongContent());

    testee1.sendMessage(m, l);

    l.waitForAllAnswers();

    assertEquals(1, l.getNumberOfExpectedResults());
    assertTrue(l.isFinished());
    assertTrue(l.isSuccess());
  }
示例#4
0
  @Test
  public void test()
      throws AgentAlreadyRegisteredException, EncodingFailedException, L2pSecurityException,
          SerializationException, InterruptedException, AgentException, AgentNotKnownException {
    System.out.println("start: " + new Date());

    LocalNode testee = LocalNode.launchNode();

    try {
      testee.registerReceiver(eve);
      fail("L2pSecurityException expected");
    } catch (L2pSecurityException e) {
    }

    eve.unlockPrivateKey("evespass");
    adam.unlockPrivateKey("adamspass");

    testee.registerReceiver(eve);
    testee.registerReceiver(adam);

    assertFalse(eve.isLocked());
    assertFalse(adam.isLocked());

    System.out.println("check1: " + new Date());

    testVariable = false;
    MessageResultListener listener =
        new MessageResultListener(10000) {
          public void notifySuccess() {
            LocalNodeTest.testVariable = true;
          }
        };

    PingPongContent c = new PingPongContent();
    Message m = new Message(adam, eve, c);

    testee.sendMessage(m, listener);

    listener.waitForAllAnswers();

    assertFalse(listener.isTimedOut());
    assertFalse(listener.hasException());
    assertTrue(listener.isSuccess());
    assertTrue(listener.isFinished());

    Message answer = listener.getResults()[0];
    answer.open(adam, testee);
    assertTrue(c.getTimestamp() < ((PingPongContent) answer.getContent()).getTimestamp());
    assertTrue(testVariable);
  }
示例#5
0
  @Test
  public void testBroadcast()
      throws EncodingFailedException, L2pSecurityException, SerializationException,
          InterruptedException, AgentException, AgentNotKnownException {
    adam.unlockPrivateKey("adamspass");
    eve.unlockPrivateKey("evespass");

    // launch three nodes with one agent each
    LocalNode testee1 = LocalNode.launchAgent(adam);
    LocalNode hosting1 = LocalNode.launchAgent(eve);
    assertEquals(1, LocalNode.findAllNodesWithAgent(eve.getId()).length);

    LocalNode hosting2 = LocalNode.launchAgent(eve);

    assertTrue(hosting1.hasLocalAgent(eve));
    assertTrue(hosting2.hasLocalAgent(eve));

    assertNotSame(hosting1.getAgent(eve.getId()), hosting2.getAgent(eve.getId()));

    assertEquals(2, LocalNode.findAllNodesWithAgent(eve.getId()).length);

    MessageResultListener l =
        new MessageResultListener(10000) {
          public void notifySuccess() {
            synchronized (this) {
              System.out.println("result retrieved");
              LocalNodeTest.counter++;
            }
          }
        };
    // l.addRecipient();
    assertEquals(1, l.getNumberOfExpectedResults());

    Message m = new Message(adam, eve, new PingPongContent());
    testee1.sendMessage(m, l, Node.SendMode.BROADCAST);
    assertEquals(2, l.getNumberOfExpectedResults());

    l.waitForAllAnswers();

    assertEquals(2, l.getNumberOfResults());
    assertEquals(counter, 2);
    assertTrue(l.isSuccess());
    assertTrue(l.isFinished());
  }