/.metadata/.plugins/org.eclipse.core.resources/.history/18/c0ce519a74a3001e1d98c762f0e1eac2
#! | 62 lines | 51 code | 11 blank | 0 comment | 0 complexity | f1c3e7d2b1c903ed492b319055457651 MD5 | raw file
- package info.reflectionsofmind.connexion.test;
-
- import info.reflectionsofmind.connexion.platform.control.IRoot;
- import info.reflectionsofmind.connexion.platform.control.control.IConnectControl;
- import info.reflectionsofmind.connexion.platform.control.control.IGameControl;
- import info.reflectionsofmind.connexion.platform.control.control.IHostControl;
- import info.reflectionsofmind.connexion.platform.control.control.IJoinControl;
- import info.reflectionsofmind.connexion.platform.control.control.IMainControl;
- import info.reflectionsofmind.connexion.platform.gui.ConnexionGUI;
- import info.reflectionsofmind.connexion.transport.direct.DirectConnectionParameters;
- import info.reflectionsofmind.connexion.transport.direct.DirectTransport;
- import info.reflectionsofmind.connexion.transport.direct.DirectTransportFactory;
-
- import java.util.concurrent.Callable;
- import java.util.concurrent.Executors;
- import java.util.concurrent.Future;
-
- public class EndToEnd
- {
- public IHostControl startHost() throws Exception
- {
- final IRoot root = new ConnexionGUI(null);
- final IMainControl main = root.restart();
- final IHostControl host = main.hostGame(null);
- host.launchTransport(new DirectTransportFactory(), new DirectConnectionParameters("direct:host"));
- return host;
- }
-
- public IGameControl startJoin(final IHostControl host) throws Exception
- {
- final IRoot root = null;
- final IMainControl main = root.restart();
- final IConnectControl connect = main.joinGame(null);
-
- final DirectTransport hostTransport = (DirectTransport) host.getRunningTransports().get(0);
- final DirectTransport joinTransport = new DirectTransport("direct:join" + connect.hashCode());
-
- final IJoinControl join = connect.connect("Dummy", joinTransport.new DirectNode(hostTransport)).get();
- return join.waitForGame().get();
- }
-
- public void endToEnd() throws Exception
- {
- final IHostControl host = startHost();
-
- final Callable<IGameControl> callable = new Callable<IGameControl>()
- {
- public IGameControl call() throws Exception
- {
- return startJoin(host);
- }
- };
-
- final Future<IGameControl> game1future = Executors.newSingleThreadExecutor().submit(callable);
- final Future<IGameControl> game2future = Executors.newSingleThreadExecutor().submit(callable);
-
- host.startGame();
-
- final IGameControl game1 = game1future.get();
- final IGameControl game2 = game2future.get();
- }
- }