@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); }
@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); }
@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()); }
@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); }
@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()); }