package net.tomp2p.rpc;
import net.tomp2p.connection2.ChannelCreator;
import net.tomp2p.connection2.DefaultConnectionConfiguration;
import net.tomp2p.futures.FutureChannelCreator;
import net.tomp2p.futures.FutureResponse;
import net.tomp2p.p2p.Peer;
import net.tomp2p.p2p.PeerMaker;
import net.tomp2p.peers.Number160;
import org.junit.Assert;
import org.junit.Test;
public class TestReservation {
/*
* @Test public void testReservationTCPL() throws Exception { for(int i=0;i<100;i++) testReservationTCP(); }
*/
@Test
public void testReservationTCP() throws Exception {
Peer sender = null;
Peer recv1 = null;
ChannelCreator cc = null;
try {
sender = new PeerMaker(new Number160("0x9876")).p2pId(55).ports(2424).makeAndListen();
recv1 = new PeerMaker(new Number160("0x1234")).p2pId(55).ports(8088).makeAndListen();
FutureChannelCreator fcc = recv1.getConnectionBean().reservation().create(0, 3);
fcc.awaitUninterruptibly();
cc = fcc.getChannelCreator();
for (int i = 0; i < 1000; i++) {
FutureResponse fr1 = sender.getHandshakeRPC().pingTCP(recv1.getPeerAddress(), cc, new DefaultConnectionConfiguration());
FutureResponse fr2 = sender.getHandshakeRPC().pingTCP(recv1.getPeerAddress(), cc, new DefaultConnectionConfiguration());
FutureResponse fr3 = sender.getHandshakeRPC().pingTCP(recv1.getPeerAddress(), cc, new DefaultConnectionConfiguration());
fr1.awaitUninterruptibly();
fr2.awaitUninterruptibly();
fr3.awaitUninterruptibly();
System.err.println(fr1.getFailedReason() + " / " + fr2.getFailedReason() + " / "
+ fr3.getFailedReason());
Assert.assertEquals(true, fr1.isSuccess());
Assert.assertEquals(true, fr2.isSuccess());
Assert.assertEquals(true, fr3.isSuccess());
}
} catch (Throwable t) {
t.printStackTrace();
} finally {
if (cc != null) {
cc.shutdown().await();
}
if (sender != null) {
sender.shutdown().await();
}
if (recv1 != null) {
recv1.shutdown().await();
}
}
}
/*
* @Test public void testReservationUDPL() throws Exception { for(int i=0;i<100;i++) testReservationUDP(); }
*/
@Test
public void testReservationUDP() throws Exception {
Peer sender = null;
Peer recv1 = null;
ChannelCreator cc = null;
try {
sender = new PeerMaker(new Number160("0x9876")).p2pId(55).ports(2424).makeAndListen();
recv1 = new PeerMaker(new Number160("0x1234")).p2pId(55).ports(8088).makeAndListen();
FutureChannelCreator fcc = recv1.getConnectionBean().reservation().create(3, 0);
fcc.awaitUninterruptibly();
cc = fcc.getChannelCreator();
for (int i = 0; i < 1000; i++) {
FutureResponse fr1 = sender.getHandshakeRPC().pingUDP(recv1.getPeerAddress(), cc, new DefaultConnectionConfiguration());
FutureResponse fr2 = sender.getHandshakeRPC().pingUDP(recv1.getPeerAddress(), cc, new DefaultConnectionConfiguration());
FutureResponse fr3 = sender.getHandshakeRPC().pingUDP(recv1.getPeerAddress(), cc, new DefaultConnectionConfiguration());
fr1.awaitUninterruptibly();
fr2.awaitUninterruptibly();
fr3.awaitUninterruptibly();
System.err.println(fr1.getFailedReason() + " / " + fr2.getFailedReason() + " / "
+ fr3.getFailedReason());
Assert.assertEquals(true, fr1.isSuccess());
Assert.assertEquals(true, fr2.isSuccess());
Assert.assertEquals(true, fr3.isSuccess());
}
} catch (Throwable t) {
t.printStackTrace();
} finally {
if (cc != null) {
cc.shutdown().await();
}
if (sender != null) {
sender.shutdown().await();
}
if (recv1 != null) {
recv1.shutdown().await();
}
}
}
}