PageRenderTime 63ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/.metadata/.plugins/org.eclipse.core.resources/.history/18/c0ce519a74a3001e1d98c762f0e1eac2

https://bitbucket.org/fixpoint/connexion
#! | 62 lines | 51 code | 11 blank | 0 comment | 0 complexity | f1c3e7d2b1c903ed492b319055457651 MD5 | raw file
  1. package info.reflectionsofmind.connexion.test;
  2. import info.reflectionsofmind.connexion.platform.control.IRoot;
  3. import info.reflectionsofmind.connexion.platform.control.control.IConnectControl;
  4. import info.reflectionsofmind.connexion.platform.control.control.IGameControl;
  5. import info.reflectionsofmind.connexion.platform.control.control.IHostControl;
  6. import info.reflectionsofmind.connexion.platform.control.control.IJoinControl;
  7. import info.reflectionsofmind.connexion.platform.control.control.IMainControl;
  8. import info.reflectionsofmind.connexion.platform.gui.ConnexionGUI;
  9. import info.reflectionsofmind.connexion.transport.direct.DirectConnectionParameters;
  10. import info.reflectionsofmind.connexion.transport.direct.DirectTransport;
  11. import info.reflectionsofmind.connexion.transport.direct.DirectTransportFactory;
  12. import java.util.concurrent.Callable;
  13. import java.util.concurrent.Executors;
  14. import java.util.concurrent.Future;
  15. public class EndToEnd
  16. {
  17. public IHostControl startHost() throws Exception
  18. {
  19. final IRoot root = new ConnexionGUI(null);
  20. final IMainControl main = root.restart();
  21. final IHostControl host = main.hostGame(null);
  22. host.launchTransport(new DirectTransportFactory(), new DirectConnectionParameters("direct:host"));
  23. return host;
  24. }
  25. public IGameControl startJoin(final IHostControl host) throws Exception
  26. {
  27. final IRoot root = null;
  28. final IMainControl main = root.restart();
  29. final IConnectControl connect = main.joinGame(null);
  30. final DirectTransport hostTransport = (DirectTransport) host.getRunningTransports().get(0);
  31. final DirectTransport joinTransport = new DirectTransport("direct:join" + connect.hashCode());
  32. final IJoinControl join = connect.connect("Dummy", joinTransport.new DirectNode(hostTransport)).get();
  33. return join.waitForGame().get();
  34. }
  35. public void endToEnd() throws Exception
  36. {
  37. final IHostControl host = startHost();
  38. final Callable<IGameControl> callable = new Callable<IGameControl>()
  39. {
  40. public IGameControl call() throws Exception
  41. {
  42. return startJoin(host);
  43. }
  44. };
  45. final Future<IGameControl> game1future = Executors.newSingleThreadExecutor().submit(callable);
  46. final Future<IGameControl> game2future = Executors.newSingleThreadExecutor().submit(callable);
  47. host.startGame();
  48. final IGameControl game1 = game1future.get();
  49. final IGameControl game2 = game2future.get();
  50. }
  51. }