Package org.hive2hive.core.network

Examples of org.hive2hive.core.network.NetworkManager


   */
  @Test
  public void testSendingAnAsynchronousMessageWithNoReplyToTargetNode() throws ClassNotFoundException,
      IOException, NoPeerConnectionException {
    // select two random nodes
    NetworkManager nodeA = network.get(random.nextInt(networkSize / 2));
    NetworkManager nodeB = network.get(random.nextInt(networkSize / 2) + networkSize / 2);

    // generate random data and content key
    String data = NetworkTestUtil.randomString();
    String contentKey = NetworkTestUtil.randomString();
    // create a message with target node B
    TestMessage message = new TestMessage(nodeB.getNodeId(), contentKey, new H2HTestData(data));

    // send message
    assertTrue(nodeA.getMessageManager().send(message, getPublicKey(nodeB)));

    // wait till message gets handled
    H2HWaiter w = new H2HWaiter(10);
    FutureGet futureGet = null;
    do {
      w.tickASecond();
      futureGet = nodeB.getDataManager().getUnblocked(
          new Parameters().setLocationKey(nodeB.getNodeId()).setContentKey(contentKey));
      futureGet.awaitUninterruptibly();
    } while (futureGet.getData() == null);

    // verify that data arrived
    String result = ((H2HTestData) futureGet.getData().object()).getTestString();
View Full Code Here


   */
  @Test
  public void testSendingAnAsynchronousMessageWithNoReplyMaxTimesTargetNode()
      throws ClassNotFoundException, IOException, NoPeerConnectionException, NoSessionException {
    // select two random nodes
    NetworkManager nodeA = network.get(random.nextInt(networkSize / 2));
    NetworkManager nodeB = network.get(random.nextInt(networkSize / 2) + networkSize / 2);
    // receiver node should already know the public key of the sender
    nodeB.getSession().getKeyManager().putPublicKey(nodeA.getUserId(), getPublicKey(nodeA));

    // generate random data and content key
    String contentKey = NetworkTestUtil.randomString();
    String data = NetworkTestUtil.randomString();
    // create a test message which gets rejected several times
    TestMessageMaxSending message = new TestMessageMaxSending(nodeB.getNodeId(), contentKey,
        new H2HTestData(data));

    // send message
    assertTrue(nodeA.getMessageManager().send(message, getPublicKey(nodeB)));

    // wait till message gets handled
    // this might need some time
    H2HWaiter w = new H2HWaiter(10);
    FutureGet futureGet = null;
    do {
      w.tickASecond();
      futureGet = nodeB.getDataManager().getUnblocked(
          new Parameters().setLocationKey(nodeB.getNodeId()).setContentKey(contentKey));
      futureGet.awaitUninterruptibly();
    } while (futureGet.getData() == null);

    // verify that data arrived
    String result = ((H2HTestData) futureGet.getData().object()).getTestString();
View Full Code Here

   */
  @Test
  public void testSendingAnAsynchronousMessageWithReply() throws ClassNotFoundException, IOException,
      NoPeerConnectionException, NoSessionException {
    // select two random nodes
    NetworkManager nodeA = network.get(random.nextInt(networkSize / 2));
    NetworkManager nodeB = network.get(random.nextInt(networkSize / 2) + networkSize / 2);
    // receiver nodes should already know the public key of the senders
    nodeA.getSession().getKeyManager().putPublicKey(nodeB.getUserId(), getPublicKey(nodeB));
    nodeB.getSession().getKeyManager().putPublicKey(nodeA.getUserId(), getPublicKey(nodeA));

    // generate a random content key
    String contentKey = NetworkTestUtil.randomString();
    // create a message with target node B
    TestMessageWithReply message = new TestMessageWithReply(nodeB.getNodeId(), contentKey);
    // create and add a callback handler
    TestCallBackHandler callBackHandler = message.new TestCallBackHandler(nodeA);
    message.setCallBackHandler(callBackHandler);

    // send message
    assertTrue(nodeA.getMessageManager().send(message, getPublicKey(nodeB)));

    // wait till callback handler gets executed
    H2HWaiter w = new H2HWaiter(10);
    FutureGet futureGet = null;
    do {
      w.tickASecond();
      futureGet = nodeB.getDataManager().getUnblocked(
          new Parameters().setLocationKey(nodeA.getNodeId()).setContentKey(contentKey));
      futureGet.awaitUninterruptibly();
    } while (futureGet.getData() == null);

    // load and verify if same secret was shared
    String receivedSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    futureGet = nodeB.getDataManager().getUnblocked(
        new Parameters().setLocationKey(nodeB.getNodeId()).setContentKey(contentKey));
    futureGet.awaitUninterruptibly();
    String originalSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    assertEquals(originalSecret, receivedSecret);
  }
View Full Code Here

   */
  @Test
  public void testSendingAnAsynchronousMessageWithNoReplyMaxTimesRequestingNode()
      throws ClassNotFoundException, IOException, NoPeerConnectionException, NoSessionException {
    // select two random nodes
    NetworkManager nodeA = network.get(random.nextInt(networkSize / 2));
    NetworkManager nodeB = network.get(random.nextInt(networkSize / 2) + networkSize / 2);
    // receiver nodes should already know the public key of the senders
    nodeA.getSession().getKeyManager().putPublicKey(nodeB.getUserId(), getPublicKey(nodeB));
    nodeB.getSession().getKeyManager().putPublicKey(nodeA.getUserId(), getPublicKey(nodeA));

    // generate a random content key
    String contentKey = NetworkTestUtil.randomString();
    // create a message with target node B
    TestMessageWithReplyMaxSending message = new TestMessageWithReplyMaxSending(nodeB.getNodeId(),
        contentKey);
    // create and add a callback handler
    TestCallBackHandlerMaxSendig callBackHandler = message.new TestCallBackHandlerMaxSendig(nodeA);
    message.setCallBackHandler(callBackHandler);

    // send message
    assertTrue(nodeA.getMessageManager().send(message, getPublicKey(nodeB)));

    // wait till callback handler gets executed
    H2HWaiter w = new H2HWaiter(10);
    FutureGet futureGet = null;
    do {
      w.tickASecond();
      futureGet = nodeB.getDataManager().getUnblocked(
          new Parameters().setLocationKey(nodeA.getNodeId()).setContentKey(contentKey));
      futureGet.awaitUninterruptibly();
    } while (futureGet.getData() == null);

    // load and verify if same secret was shared
    String receivedSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    futureGet = nodeB.getDataManager().getUnblocked(
        new Parameters().setLocationKey(nodeB.getNodeId()).setContentKey(contentKey));
    futureGet.awaitUninterruptibly();
    String originalSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    assertEquals(originalSecret, receivedSecret);
  }
View Full Code Here

  private H2HNode(INetworkConfiguration networkConfiguration, IFileConfiguration fileConfiguration) {
    this.networkConfiguration = networkConfiguration;
    this.fileConfiguration = fileConfiguration;

    networkManager = new NetworkManager(networkConfiguration);
  }
View Full Code Here

  }

  @Test
  public void testSendingDirectMessageWithRequest() throws ClassNotFoundException, IOException,
      NoPeerConnectionException {
    NetworkManager nodeA = network.get(0);
    NetworkManager nodeB = network.get(1);

    // generate a random content key
    String contentKey = NetworkTestUtil.randomString();
    // create a message with target node B
    TestDirectMessageWithReply message = new TestDirectMessageWithReply(nodeB.getConnection().getPeer()
        .getPeerAddress(), contentKey);
    // create and add a callback handler
    TestCallBackHandler callBackHandler = message.new TestCallBackHandler(nodeA);
    message.setCallBackHandler(callBackHandler);

    // send message
    assertTrue(nodeA.getMessageManager().sendDirect(message, getPublicKey(nodeB)));

    // wait till callback handler gets executed
    H2HWaiter w = new H2HWaiter(10);
    FutureGet futureGet = null;
    do {
      w.tickASecond();
      futureGet = nodeB.getDataManager().getUnblocked(
          new Parameters().setLocationKey(nodeA.getNodeId()).setContentKey(contentKey));
      futureGet.awaitUninterruptibly();
    } while (futureGet.getData() == null);

    // load and verify if same secret was shared
    String receivedSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    futureGet = nodeB.getDataManager().getUnblocked(
        new Parameters().setLocationKey(nodeB.getNodeId()).setContentKey(contentKey));
    futureGet.awaitUninterruptibly();
    String originalSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    assertEquals(originalSecret, receivedSecret);
  }
View Full Code Here

  }

  @Test
  public void testSendingDirectMessageWithNoReplyMaxTimesRequestingNode() throws ClassNotFoundException,
      IOException, NoPeerConnectionException, NoSessionException {
    NetworkManager nodeA = network.get(0);
    NetworkManager nodeB = network.get(1);
    // receiver nodes should already know the public key of the senders
    nodeA.getSession().getKeyManager().putPublicKey(nodeB.getUserId(), getPublicKey(nodeB));
    nodeB.getSession().getKeyManager().putPublicKey(nodeA.getUserId(), getPublicKey(nodeA));

    // generate a random content key
    String contentKey = NetworkTestUtil.randomString();
    // create a message with target node B
    TestDirectMessageWithReplyMaxSending message = new TestDirectMessageWithReplyMaxSending(nodeB
        .getConnection().getPeer().getPeerAddress(), contentKey);
    // create and add a callback handler
    TestCallBackHandlerMaxSendig callBackHandler = message.new TestCallBackHandlerMaxSendig(nodeA);
    message.setCallBackHandler(callBackHandler);

    // send message
    assertTrue(nodeA.getMessageManager().sendDirect(message, getPublicKey(nodeB)));

    // wait till callback handler gets executed
    H2HWaiter w = new H2HWaiter(10);
    FutureGet futureGet = null;
    do {
      w.tickASecond();
      futureGet = nodeB.getDataManager().getUnblocked(
          new Parameters().setLocationKey(nodeA.getNodeId()).setContentKey(contentKey));
      futureGet.awaitUninterruptibly();
    } while (futureGet.getData() == null);

    // load and verify if same secret was shared
    String receivedSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    futureGet = nodeB.getDataManager().getUnblocked(
        new Parameters().setLocationKey(nodeB.getNodeId()).setContentKey(contentKey));
    futureGet.awaitUninterruptibly();
    String originalSecret = ((H2HTestData) futureGet.getData().object()).getTestString();
    assertEquals(originalSecret, receivedSecret);
  }
View Full Code Here

  @Test
  public void testGettingLocalUserKeys() throws GetFailedException, NoPeerConnectionException {
    String loggedInUserId = NetworkTestUtil.randomString();
    KeyPair loggedInUserKeys = EncryptionUtil.generateRSAKeyPair(H2HConstants.KEYLENGTH_USER_KEYS);

    NetworkManager node = network.get(random.nextInt(networkSize));
    PublicKeyManager publicKeyManager = new PublicKeyManager(loggedInUserId, loggedInUserKeys,
        node.getDataManager());

    // check if the public key manager returns correctly the key of the logged in user
    assertEquals(loggedInUserKeys.getPublic(), publicKeyManager.getPublicKey(loggedInUserId));
  }
View Full Code Here

  @Test
  public void testFetchingFromNetwork() throws GetFailedException, NoPeerConnectionException {
    String loggedInUserId = NetworkTestUtil.randomString();
    KeyPair loggedInUserKeys = EncryptionUtil.generateRSAKeyPair(H2HConstants.KEYLENGTH_USER_KEYS);

    NetworkManager node = network.get(random.nextInt(networkSize));
    PublicKeyManager publicKeyManager = new PublicKeyManager(loggedInUserId, loggedInUserKeys,
        node.getDataManager());

    // create and upload some fake public keys into the network
    Map<String, PublicKey> publicKeys = new HashMap<String, PublicKey>();
    for (int i = 0; i < random.nextInt(10); i++) {
      String userId = NetworkTestUtil.randomString();
View Full Code Here

  @Test
  public void testCachingOfPublicKeys() throws GetFailedException, NoPeerConnectionException {
    String loggedInUserId = NetworkTestUtil.randomString();
    KeyPair loggedInUserKeys = EncryptionUtil.generateRSAKeyPair(H2HConstants.KEYLENGTH_USER_KEYS);

    NetworkManager node = network.get(random.nextInt(networkSize));
    PublicKeyManager publicKeyManager = new PublicKeyManager(loggedInUserId, loggedInUserKeys,
        node.getDataManager());

    Map<String, PublicKey> publicKeys = new HashMap<String, PublicKey>();
    for (int i = 0; i < random.nextInt(5); i++) {
      String userId = NetworkTestUtil.randomString();
      KeyPair key = EncryptionUtil.generateRSAKeyPair(H2HConstants.KEYLENGTH_USER_KEYS);
View Full Code Here

TOP

Related Classes of org.hive2hive.core.network.NetworkManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.