package net.jxse.systemtests.colocated;
import net.jxse.systemtests.colocated.configs.PeerConfigurator;
import net.jxta.platform.NetworkManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
/**
* Tests ad-hoc mode communication using the TCP transport. This test exists within
* {@link AdHocCommsTest} however due to peer isolation issues it must currently
* be run separately - placing it in it's own class ensures it is run in a forked
* VM.
*/
public class AdHocTcpCommsTest {
@Rule
public TemporaryFolder tempStorage = new TemporaryFolder();
private NetworkManager aliceManager;
private NetworkManager bobManager;
@Before
public void createPeers() throws Exception {
String aliceInstanceName = "alice";
String bobInstanceName = "bob";
aliceManager = PeerConfigurator.createTcpAdhocPeer(aliceInstanceName, 58000, tempStorage);
bobManager = PeerConfigurator.createTcpAdhocPeer(bobInstanceName, 58001, tempStorage);
aliceManager.getConfigurator().setPrincipal(aliceInstanceName);
bobManager.getConfigurator().setPrincipal(bobInstanceName);
aliceManager.startNetwork();
bobManager.startNetwork();
// XXX: give the network managers time to stabilise
Thread.sleep(5000L);
}
@Test
public void testComms() throws Exception {
SystemTestUtils.testPeerCommunication(aliceManager, bobManager);
}
@After
public void killAlice() throws Exception {
aliceManager.stopNetwork();
}
@After
public void killBob() throws Exception {
bobManager.stopNetwork();
}
}