Package net.tomp2p.tracker

Source Code of net.tomp2p.tracker.TestTrackerStorage

package net.tomp2p.tracker;

import java.io.IOException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;

import net.tomp2p.connection.PeerException;
import net.tomp2p.message.TrackerData;
import net.tomp2p.peers.Number160;
import net.tomp2p.peers.Number320;
import net.tomp2p.peers.PeerAddress;
import net.tomp2p.peers.PeerMap;
import net.tomp2p.peers.PeerMapConfiguration;
import net.tomp2p.peers.PeerStatistic;
import net.tomp2p.storage.Data;

import org.junit.Assert;
import org.junit.Test;

public class TestTrackerStorage {
 
  @Test
  public void testStoragePutGetVerified() throws IOException, ClassNotFoundException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(10, new int[] { 10 }, 1, pm, selfAddress, false);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    boolean retVal = trackerStorage.put(n320, selfAddress, null, new Data("test"));
    Assert.assertTrue(retVal);
    //
    TrackerData td = trackerStorage.peers(n320);
    Object o = td.peerAddresses().values().iterator().next().object();
    Assert.assertEquals(o, "test");
  }
 
  @Test
  public void testStoragePutGetUnverified() throws IOException, ClassNotFoundException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(10, new int[] { 10 }, 1, pm, selfAddress, true);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    boolean retVal = trackerStorage.put(n320, selfAddress, null, new Data("test"));
    Assert.assertTrue(retVal);
    //
    TrackerData td = trackerStorage.peers(n320);
    Assert.assertNull(td);
  }
 
  @Test
  public void testStoragePutGetUnverifiedVerified() throws IOException, ClassNotFoundException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(Integer.MAX_VALUE, new int[] { 10 }, 1, pm, selfAddress, true);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    trackerStorage.put(n320, selfAddress, null, new Data("test"));
    trackerStorage.peerFound(selfAddress, null, null);
   
    TrackerData td = trackerStorage.peers(n320);
    Object o = td.peerAddresses().values().iterator().next().object();
    Assert.assertEquals(o, "test");
  }
 
  @Test
  public void testStoragePutGetUnverifiedVerifiedSecurity() throws IOException, ClassNotFoundException, NoSuchAlgorithmException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(Integer.MAX_VALUE, new int[] { 10 }, 1, pm, selfAddress, true);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    KeyPairGenerator gen = KeyPairGenerator.getInstance("DSA");
    KeyPair pair1 = gen.generateKeyPair();
   
    trackerStorage.put(n320, selfAddress, pair1.getPublic(), new Data("test"));
    trackerStorage.peerFound(selfAddress, null, null);
    trackerStorage.put(n320, selfAddress, pair1.getPublic(), new Data("test1"));
   
    TrackerData td = trackerStorage.peers(n320);
    Object o = td.peerAddresses().values().iterator().next().object();
    Assert.assertEquals(o, "test1");
  }
 
  @Test
  public void testTrackerRemove1() throws IOException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(10, new int[] { 10 }, 1, pm, selfAddress, false);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    trackerStorage.put(n320, selfAddress, null, new Data("test"));
    trackerStorage.peerFailed(selfAddress, new PeerException(PeerException.AbortCause.PEER_ABORT, ""));
    Assert.assertEquals(0, trackerStorage.size());
  }
 
  @Test
  public void testTrackerRemove2() throws IOException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(10, new int[] { 10 }, 1, pm, selfAddress, true);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    trackerStorage.put(n320, selfAddress, null, new Data("test"));
    trackerStorage.peerFailed(selfAddress, new PeerException(PeerException.AbortCause.PEER_ABORT, ""));
    Assert.assertEquals(0, trackerStorage.sizeUnverified());
  }
 
  @Test
  public void testTrackerMaintenance1() throws IOException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(10, new int[] { 10 }, 1, pm, selfAddress, true);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    trackerStorage.put(n320, selfAddress, null, new Data("test"));
    PeerStatistic ps = trackerStorage.nextForMaintenance(null);
    Assert.assertEquals(ps.peerAddress().peerId(), self)
  }
 
  @Test
  public void testTrackerMaintenance2() throws IOException {
    Number160 self = Number160.ONE;
    PeerAddress selfAddress = new PeerAddress(self);
    PeerMapConfiguration pmc = new PeerMapConfiguration(self);
    PeerMap pm = new PeerMap(pmc);
    TrackerStorage trackerStorage = new TrackerStorage(10, new int[] { 10 }, 1, pm, selfAddress, true);

    Number320 n320 = new Number320(Number160.ZERO, Number160.ZERO);

    trackerStorage.put(n320, selfAddress, null, new Data("test"));
    PeerStatistic ps = trackerStorage.nextForMaintenance(null);
    trackerStorage.peerFound(selfAddress, null, null);
    ps = trackerStorage.nextForMaintenance(null);
    Assert.assertNull(ps);
  }
}
TOP

Related Classes of net.tomp2p.tracker.TestTrackerStorage

TOP
Copyright © 2018 www.massapi.com. 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.