예제 #1
0
 public void ResignTest1()
 {
     AutoResetEvent ar1 = new AutoResetEvent(false);
     AutoResetEvent ar2 = new AutoResetEvent(false);
     bool resignHappened1 = false;
     bool resignHappened2 = false;
     Connect4Server.Connect4Service server = new Connect4Server.Connect4Service(5011, 30, Connect4Server.Connect4Service.WhoGoesFirst.second);
     Connect4ClientGame target1 = new Connect4ClientGame("Mr. test");
     Connect4ClientGame target2 = new Connect4ClientGame("Mrs. test");
     target1.Disconnected += (s) =>
     {
         if (s == DisconnectReason.youResigned)
         {
             resignHappened1 = true;
             ar1.Set();
         }
     };
     target2.Disconnected += (s) =>
     {
         if (s == DisconnectReason.opponentResigned)
         {
             resignHappened2 = true;
             ar2.Set();
         }
     };
     target1.StartConnection("localhost", 5011);
     target2.StartConnection("localhost", 5011);
     Thread.Sleep(1000);
     target1.Resign();
     ar1.WaitOne();
     ar2.WaitOne();
     Assert.IsTrue(resignHappened1);
     Assert.IsTrue(resignHappened2);
 }