package net.tomp2p.p2p;
import net.tomp2p.connection.Bindings;
import net.tomp2p.futures.FutureDirect;
import net.tomp2p.peers.Number160;
import net.tomp2p.peers.PeerAddress;
import net.tomp2p.rpc.ObjectDataReply;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
public class TestDirect {
@Rule
public TestRule watcher = new TestWatcher() {
protected void starting(Description description) {
System.out.println("Starting test: " + description.getMethodName());
}
};
@Test
public void testDirectMessage1() throws Exception {
Peer sender = null;
Peer recv1 = null;
try {
Bindings b = new Bindings();
sender = new PeerBuilder(new Number160("0x50")).bindings(b).ports(2424).start();
recv1 = new PeerBuilder(new Number160("0x20")).bindings(b).ports(8088).start();
recv1.objectDataReply(new ObjectDataReply() {
@Override
public Object reply(PeerAddress sender, Object request) throws Exception {
System.err.println(sender);
return "yes";
}
});
FutureDirect fd = sender.sendDirect(recv1.peerAddress()).object("test").start().awaitUninterruptibly();
Assert.assertTrue(fd.isSuccess());
} finally {
if (sender != null) {
sender.shutdown().await();
}
if (recv1 != null) {
recv1.shutdown().await();
}
}
}
}