示例#1
0
            public void run()
            {
                try{
                    //setup server
                    server = new BoggleServer(80, "dictionary.txt");

                    //setup clients
                    BoggleClientModel target    = new BoggleClientModel();
                    string            IPAddress = "127.0.0.1";
                    string            name      = "test";

                    BoggleClientModel target2 = new BoggleClientModel();
                    string            name2   = "test2";


                    target.IncomingStartEvent += delegate(string line)
                    {
                        MRE.Set();
                    };

                    //trigger event
                    target.Connect(IPAddress, name);
                    target2.Connect(IPAddress, name2);

                    Assert.AreEqual(true, MRE.WaitOne(timeout), "Timed out waiting 1");
                }
                finally
                { server.close(); }
            }
示例#2
0
        public void TestStartRandomDice()
        {
            string[] toArgs = new string[2];
            toArgs[0] = "5";
            toArgs[1] = "..\\..\\..\\dictionary.txt";

            ThreadPool.QueueUserWorkItem((e) => { BoggleServer.Main(toArgs); });



            List <StringSocket> clients = new List <StringSocket>();

            int CLIENT_COUNT = 2;//not a constant, I know.

            for (int i = 0; i < CLIENT_COUNT; i++)
            {
                TcpClient    tempClient       = new TcpClient("localhost", 2000);
                Socket       tempclientSocket = tempClient.Client;
                StringSocket SS = new StringSocket(tempclientSocket, new UTF8Encoding());
                clients.Add(SS);
            }

            string clientString0 = "";
            string clientString1 = "";

            clients[0].BeginSend("PLAY Dylan\n", (e, p) => { clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1); }, 1);
            Thread.Sleep(1250);

            clients[1].BeginSend("PLAY YY\n", (e, p) => { clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1); }, 1);
            Thread.Sleep(1250);
            string boardtemp = clientString0.Substring(6, 16);

            Assert.AreEqual("START " + boardtemp + " " + toArgs[0] + " YY", clientString0);
            Assert.AreEqual("START " + boardtemp + " " + toArgs[0] + " Dylan", clientString1);
        }
示例#3
0
        public void TestScoringDiffSizeWords()
        {
            string[] toArgs = new string[3];
            toArgs[0] = "20";
            toArgs[1] = "..\\..\\..\\dictionary.txt";
            toArgs[2] = "SERSPATGLINESERS";
            ThreadPool.QueueUserWorkItem((e) => { BoggleServer.Main(toArgs); });

            List <StringSocket> clients = new List <StringSocket>();

            int CLIENT_COUNT = 2;//not a constant, I know.

            for (int i = 0; i < CLIENT_COUNT; i++)
            {
                TcpClient    tempClient       = new TcpClient("localhost", 2000);
                Socket       tempclientSocket = tempClient.Client;
                StringSocket SS = new StringSocket(tempclientSocket, new UTF8Encoding());
                clients.Add(SS);
            }

            string clientString0 = "";
            string clientString1 = "";

            clients[0].BeginSend("PLAY Dylan\n", (e, p) => { clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1); }, 1);

            clients[1].BeginSend("PLAY YY\n", (e, p) => { clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1); }, 1);

            string clientString0next = "";
            string clientString1next = "";

            //bool notDone = true;
            clients[0].BeginSend("WORD Eateries\n", (e, p) => {  }, 1);
            clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1);
            //Thread.Sleep(500);
            clientString0next = catchMessage(clientString0, 6, "SCORE", clients[0]);
            //clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1);
            clientString1next = catchMessage(clientString1, 6, "SCORE", clients[1]);


            Assert.AreEqual("11 0", clientString0next);
            Assert.AreEqual("0 11", clientString1next);

            // The last part of this test is not working, but it is a problem with this test as telnet shows the server is working.
            //Thread.Sleep(500);
            ////notDone = true;
            //clients[0].BeginSend("WORD line\n", (e, p) => {  }, 1);

            //clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1);

            //clientString0next = catchMessage(clientString0, 6, "SCORE", clients[0]);

            //clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1);

            //clientString1next = catchMessage(clientString1, 6, "SCORE", clients[1]);

            //Assert.AreEqual("12 0", clientString0next);
            //Assert.AreEqual("0 12", clientString1next);
        }
示例#4
0
        public void TestStartAndStop()
        {
            string[] toArgs = new string[3];
            toArgs[0] = "5";
            toArgs[1] = "..\\..\\..\\dictionary.txt";
            toArgs[2] = "TAPRVILRGTOAEUEQ";
            ThreadPool.QueueUserWorkItem((e) => { BoggleServer.Main(toArgs); });

            List <StringSocket> clients = new List <StringSocket>();

            int CLIENT_COUNT = 2;//not a constant, I know.

            for (int i = 0; i < CLIENT_COUNT; i++)
            {
                TcpClient    tempClient       = new TcpClient("localhost", 2000);
                Socket       tempclientSocket = tempClient.Client;
                StringSocket SS = new StringSocket(tempclientSocket, new UTF8Encoding());
                clients.Add(SS);
            }

            string clientString0 = "";
            string clientString1 = "";

            clients[0].BeginSend("PLAY Dylan\n", (e, p) => { clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1); }, 1);
            Thread.Sleep(1250);
            clients[1].BeginSend("PLAY YY\n", (e, p) => { clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1); }, 1);
            Thread.Sleep(1250);
            Assert.AreEqual("START TAPRVILRGTOAEUEQ " + toArgs[0] + " YY", clientString0);
            Assert.AreEqual("START TAPRVILRGTOAEUEQ " + toArgs[0] + " Dylan", clientString1);


            string clientString0next = "";
            string clientString1next = "";

            clients[0].BeginSend("WORD queue\n", (e, p) => { clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1); }, 1);
            //clientString0next = catchMessage(clientString0, 6, "SCORE", clients[0]);


            clients[1].BeginSend("WORD dkjflaks\n", (e, p) => { clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1); }, 1);
            //clientString1next = catchMessage(clientString1, 6, "SCORE", clients[1]);

            Thread.Sleep(1250);

            clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1);
            Thread.Sleep(500);
            clientString0next = catchMessage(clientString0, 5, "STOP", clients[0]);


            clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1);
            Thread.Sleep(500);
            clientString1next = catchMessage(clientString1, 5, "STOP", clients[1]);

            Thread.Sleep(1250);
            Assert.AreEqual("1 QUEUE 0  0  0  1 DKJFLAKS", clientString0next);
            Assert.AreEqual("0  1 QUEUE 0  1 DKJFLAKS 0 ", clientString1next);
        }
示例#5
0
        private void init()
        {
            BoggleServer.Main(new string[] { "30", "..\\..\\..\\dictionary.txt", "TAPRVILRGTOAEUEQ" });
            win1 = new BoggleClient.MainWindow();
            win1.Show();
            win2 = new BoggleClient.MainWindow();
            win2.Show();

            //System.Windows.Threading.Dispatcher.Run();
            Console.WriteLine("hi");
        }
示例#6
0
        static void Main(string[] args)
        {
            new Thread(() =>
                       //BoggleServer.Main(new string[] { "30", "..\\..\\..\\dictionary.txt", "TAPRVILRGTOAEUEQ" })).Start();
                       BoggleServer.Main(new string[] { "30", "..\\..\\..\\dictionary.txt" })).Start();
            new BoggleClient.MainWindow().Show();
            new BoggleClient.MainWindow().Show();
            new BoggleClient.MainWindow().Show();
            new BoggleClient.MainWindow().Show();
            new BoggleClient.MainWindow().Show();
            new BoggleClient.MainWindow().Show();

            System.Windows.Threading.Dispatcher.Run();
        }
示例#7
0
            public void run()
            {
                try
                {
                    //setup server
                    server = new BoggleServer(10, "dictionary.txt", "AAAAAAAAAAAAAAAA");
                    server.LegalWords.Add("AAA");

                    //setup clients
                    BoggleClientModel target    = new BoggleClientModel();
                    string            IPAddress = "127.0.0.1";
                    string            name      = "test";

                    BoggleClientModel target2 = new BoggleClientModel();
                    string            name2   = "test2";

                    target.IncomingScoreEvent += delegate(string line)
                    {
                        MRE.Set();
                    };


                    target2.IncomingScoreEvent += delegate(string line)
                    {
                        MRE1.Set();
                    };

                    //connect the clients
                    target.Connect(IPAddress, name);
                    target2.Connect(IPAddress, name2);

                    //trigger event
                    target.SendMessage("WORD AAA");

                    Assert.AreEqual(true, MRE.WaitOne(timeout), "Timed out waiting 1");
                    Assert.AreEqual(true, MRE1.WaitOne(timeout), "Timed out waiting 2");
                }
                finally
                {
                    server.close();
                }
            }
示例#8
0
        public void TestDisconnect()
        {
            string[] toArgs = new string[3];
            toArgs[0] = "5";
            toArgs[1] = "..\\..\\..\\dictionary.txt";
            toArgs[2] = "TAPRVILRGTOAEUEQ";
            ThreadPool.QueueUserWorkItem((e) => { BoggleServer.Main(toArgs); });

            List <StringSocket> clients = new List <StringSocket>();

            int CLIENT_COUNT = 2;//not a constant, I know.

            for (int i = 0; i < CLIENT_COUNT; i++)
            {
                TcpClient    tempClient       = new TcpClient("localhost", 2000);
                Socket       tempclientSocket = tempClient.Client;
                StringSocket SS = new StringSocket(tempclientSocket, new UTF8Encoding());
                clients.Add(SS);
            }

            string clientString0 = "";
            string clientString1 = "";

            clients[0].BeginSend("PLAY Dylan\n", (e, p) => { }, 1);
            clients[1].BeginSend("PLAY ToClose\n", (e, p) => { clients[1].BeginReceive((s, ee, pp) => { clientString1 = s; }, 1); }, 1);

            Thread.Sleep(500);

            clientString0 = "";

            string clientString0next = "";

            clients[1].Close();

            clients[0].BeginReceive((s, ee, pp) => { clientString0 = s; }, 1);
            clientString0next = catchMessage(clientString0, 0, "TERMINATED", clients[0]);

            Assert.AreEqual("TERMINATED", clientString0next);
        }