예제 #1
0
            public void run()
            {
                BoggleServer.BoggleServer server = null;
                TcpClient client = null;

                try
                {
                    string[] args = { "200", "../../../Resources/dictionary.txt" };
                    server = new BoggleServer.BoggleServer(args);

                    // create player one connection
                    client = new TcpClient("localhost", 2000);
                    Socket       clientSocket = client.Client;
                    StringSocket player       = new StringSocket(clientSocket, new UTF8Encoding());

                    mre = new ManualResetEvent(false);

                    // have player one join the boggle game
                    player.BeginSend("PLAY Basil\n", (o, e) => { mre.Set(); }, null);

                    // waits for one second, expecting the callback to trigger the mre signal
                    Assert.IsTrue(mre.WaitOne(1000));
                }
                finally
                {
                    server.Stop();
                    client.Close();
                }
            }
예제 #2
0
        public void TestMethod1()
        {
            BoggleServer.BoggleServer bServ = new BoggleServer.BoggleServer(60, new HashSet<string>(System.IO.File.ReadAllLines(@"..\..\..\Resources\Dictionary.txt")), "horstoaeaggdpple");
            
            BoggleClientModel model1 = new BoggleClientModel();
            BoggleClientModel model2 = new BoggleClientModel();
            model1.Connect("localhost", 2000);
            model2.Connect("localhost", 2000);

            Assert.IsFalse(model1._client == null);
            Assert.IsFalse(model1._stringSocket == null);

            model1.SendCommand("PLAY Frodo");
            model2.SendCommand("PLAY Sam");

            model2.IncomingLineEvent += messageReceived;

            Assert.AreEqual(" ", BoggleClientTest.received);

            model1.Disconnect();
            model2.Disconnect();

            Assert.IsTrue(model1._stringSocket == null);
            Assert.IsTrue(model2._stringSocket == null);

        }
예제 #3
0
        public void TestMethod1()
        {
            BoggleServer.BoggleServer twoArgServer   = null;
            BoggleServer.BoggleServer threeArgServer = null;

            try
            {
                // make boggle with 2 arguments
                string[] twoArgs = { "200", "../../../Resources/dictionary.txt" };
                twoArgServer = new BoggleServer.BoggleServer(twoArgs);
            }
            finally
            {
                // close the server
                twoArgServer.Stop();
            }

            try
            {
                // make boggle with 3 arguments
                string[] threeArgs = { "200", "../../../Resources/dictionary.txt", "jimiergsatnesaps" };
                threeArgServer = new BoggleServer.BoggleServer(threeArgs);
            }
            finally
            {
                // close the server
                threeArgServer.Stop();
            }
        }
예제 #4
0
        public void TestMethod10()
        {
            // make boggle with too many arguments
            string[] badArgs = { "200", "dictionary", "jimiergsatnesaps" };
            BoggleServer.BoggleServer badArgServer = new BoggleServer.BoggleServer(badArgs);

            // want to get the result of console as a string?
        }
예제 #5
0
        public void TestMethod7()
        {
            // make boggle with too many arguments
            string[] badArgs = { "200", "../../../Resources/dictionary.txt", "jimi" };
            BoggleServer.BoggleServer badArgServer = new BoggleServer.BoggleServer(badArgs);

            // want to get the result of console as a string?
        }
예제 #6
0
 public void Initialize()
 {
     model = new BoggleClientModel();
         model2 = new BoggleClientModel();
         server = new BoggleServer.BoggleServer(2000, 2, "..\\..\\..\\dictionary", null);
         model.Connect(2000, "localhost");
         model2.Connect(2000, "localhost");
         //Assert.IsTrue(model.IsConnected);
 }
예제 #7
0
        public void TestMethod4()
        {
            // make boggle with too many arguments
            string[] badArgs = { "200", "../../../Resources/dictionary.txt", "ascdefdlsakgldgj", "too many arguments" };
            BoggleServer.BoggleServer badArgServer = new BoggleServer.BoggleServer(badArgs);

            // want to get the result of console as a string?
            //Assert.AreEqual("Invalid number of arguments.", Console.ReadLine().ToString());
        }
예제 #8
0
        public void TestMethod9()
        {
            // make boggle with too many arguments
            string[] badArgs1 = { "200", "", "jimiergsatnesaps" };
            string[] badArgs2 = { "200", null, "jimiergsatnesaps" };
            BoggleServer.BoggleServer badArgServer = new BoggleServer.BoggleServer(badArgs1);
            badArgServer = new BoggleServer.BoggleServer(badArgs2);

            // want to get the result of console as a string?
        }
예제 #9
0
            public void run()
            {
                BoggleServer.BoggleServer server = null;
                TcpClient clientOne = null;
                TcpClient clientTwo = null;

                try
                {
                    string[] args = { "200", "../../../Resources/dictionary.txt", "jimiergsatnesaps" };
                    server = new BoggleServer.BoggleServer(args);

                    // create player one connection
                    clientOne = new TcpClient("localhost", 2000);
                    Socket       clientOneSocket = clientOne.Client;
                    StringSocket playerOne       = new StringSocket(clientOneSocket, new UTF8Encoding());

                    // create player two connection
                    clientTwo = new TcpClient("localhost", 2000);
                    Socket       clientTwoSocket = clientTwo.Client;
                    StringSocket playerTwo       = new StringSocket(clientTwoSocket, new UTF8Encoding());

                    mre1 = new ManualResetEvent(false);
                    mre2 = new ManualResetEvent(false);

                    // have player one join the boggle game
                    playerOne.BeginSend("PLAY Basil\n", (o, e) => { }, null);

                    // have player two join the boggle game
                    playerTwo.BeginSend("PLAY Lance\n", (o, e) => { }, null);

                    playerOne.BeginReceive(CompletedReceiveOne, 1);
                    playerTwo.BeginReceive(CompletedReceiveTwo, 2);

                    // waits for one second, expecting the callback to trigger the mre1 signal
                    Assert.IsTrue(mre1.WaitOne(1000));
                    Assert.AreEqual("START JIMIERGSATNESAPS 200 LANCE", s1);
                    Assert.AreEqual(1, p1);

                    // waits for one second, expecting the callback to trigger the mre2 signal
                    Assert.IsTrue(mre2.WaitOne(1000));
                    Assert.AreEqual("START JIMIERGSATNESAPS 200 BASIL", s2);
                    Assert.AreEqual(2, p2);
                }
                finally
                {
                    server.Stop();
                    clientOne.Close();
                    clientTwo.Close();
                }
            }
예제 #10
0
        public void runGame()
        {
            server = new BoggleServer.BoggleServer(2000, 10, "..\\..\\..\\dictionary", "AAAABBBBCCCCDDDD");
            player1 = new TcpClient("localhost", 2000);
            player2 = new TcpClient("localhost", 2000);
            Socket p1socket = player1.Client;
            Socket p2socket = player2.Client;
            p1 = new StringSocket(p1socket, new UTF8Encoding());
            p2 = new StringSocket(p2socket, new UTF8Encoding());
            p1.BeginSend("PLAY player1\n", (e, o) => { }, null);
            p2.BeginSend("PLAY player2\n", (e, o) => { }, null);
            mre = new ManualResetEvent(false);
            receivedWords = new List<string>();
            for (int i = 0; i < 20; i++)
            {
                p1.BeginReceive(callback, p1);
            }
            mre.WaitOne(1000);

            Assert.IsTrue(receivedWords.Contains("START AAAABBBBCCCCDDDD 10 PLAYER2"));
        }
예제 #11
0
        public void runGame()
        {
            mre = new ManualResetEvent(false);
            receivedWords = new List<string>();

            server = new BoggleServer.BoggleServer(2003, 200, "..\\..\\..\\dictionary", "DEHNKTMBCRENFADT");
            player1 = new TcpClient("localhost", 2003);
            player2 = new TcpClient("localhost", 2003);
            Socket p1socket = player1.Client;
            Socket p2socket = player2.Client;
            p1 = new StringSocket(p1socket, new UTF8Encoding());
            p2 = new StringSocket(p2socket, new UTF8Encoding());
            p1.BeginSend("PLAY player1\n", (e, o) => { }, null);
            p1.BeginSend("Please Ignore Me\n", (e, o) => { }, null);

            for (int i = 0; i < 40; i++)
            {
                p1.BeginReceive(callback, p1);
                p2.BeginReceive(callback, p2);
            }
            mre.WaitOne(1000);

            p2.BeginSend("PLAY player2\n", (e, o) => { }, null);
            p1.BeginReceive(callback, null);
            p2.BeginReceive(callback, null);

            for (int i = 0; i < 40; i++)
            {
                p1.BeginReceive(callback, p1);
                p2.BeginReceive(callback, p2);
            }
            mre.WaitOne(1000);

            Assert.IsTrue(receivedWords.Contains("START DEHNKTMBCRENFADT 200 PLAYER2"));
            Assert.IsTrue(receivedWords.Contains("START DEHNKTMBCRENFADT 200 PLAYER1"));
            Assert.IsTrue(receivedWords.Contains("IGNORING Please Ignore Me"));

            p2.BeginSend("WORD DunIgnr\n", (e, o) => { }, null); //X -1

            for (int i = 0; i < 60; i++)
            {
                p1.BeginReceive(callback, p1);
                p2.BeginReceive(callback, p2);
            }
            mre.WaitOne(1000);

            p1.BeginSend("WORD PleaseDontIgnoreMe\n", (e, o) => { }, null); //-1 X
            p1.BeginSend("WORD racketed\n", (e, o) => { }, null);           //+11 X = 10
            p1.BeginSend("WORD tracked\n", (e, o) => { }, null);            //+5 X = 15
            p1.BeginSend("WORD racket\n", (e, o) => { }, null);             //+3 X = 18
            p1.BeginSend("WORD trend\n", (e, o) => { }, null);              //+2 X = 20
            p1.BeginSend("WORD read\n", (e, o) => { }, null);               //+1 X = 21
            p1.BeginSend("WORD the\n", (e, o) => { }, null);                //+1 X = 22

            for (int i = 0; i < 60; i++)
            {
                p1.BeginReceive(callback, p1);
                p2.BeginReceive(callback, p2);
            }
            mre.WaitOne(2000);

            p2.BeginSend("WORD the\n", (e, o) => { }, null);            //-1 -1 = 21

            for (int i = 0; i < 60; i++)
            {
                p1.BeginReceive(callback, p1);
                p2.BeginReceive(callback, p2);
            }

            mre.WaitOne(1000);

            Assert.IsTrue(receivedWords.Contains("SCORE -1 21"));
        }
예제 #12
0
            public void run()
            {
                BoggleServer.BoggleServer server = null;
                TcpClient clientOne = null;
                TcpClient clientTwo = null;

                try
                {
                    string[] args = { "20", "../../../Resources/dictionary.txt", "jimiergsatnesaps" };
                    server = new BoggleServer.BoggleServer(args);

                    // create player one connection
                    clientOne = new TcpClient("localhost", 2000);
                    Socket       clientOneSocket = clientOne.Client;
                    StringSocket playerOne       = new StringSocket(clientOneSocket, new UTF8Encoding());

                    // create player two connection
                    clientTwo = new TcpClient("localhost", 2000);
                    Socket       clientTwoSocket = clientTwo.Client;
                    StringSocket playerTwo       = new StringSocket(clientTwoSocket, new UTF8Encoding());

                    mre1 = new ManualResetEvent(false);
                    mre2 = new ManualResetEvent(false);

                    // have player one join the boggle game
                    playerOne.BeginSend("PLAY Basil\n", (o, e) => { }, null);

                    // have player two join the boggle game
                    playerTwo.BeginSend("PLAY Lance\n", (o, e) => { }, null);

                    playerOne.BeginReceive(CompletedReceiveOne, 1);
                    playerTwo.BeginReceive(CompletedReceiveTwo, 2);

                    // waits for one second, expecting the callback to trigger the mre1 signal
                    Assert.IsTrue(mre1.WaitOne(1000));
                    Assert.AreEqual("START JIMIERGSATNESAPS 20 LANCE", s1);

                    // waits for one second, expecting the callback to trigger the mre2 signal
                    Assert.IsTrue(mre2.WaitOne(1000));
                    Assert.AreEqual("START JIMIERGSATNESAPS 20 BASIL", s2);

                    //Reset the mres
                    mre1.Reset();
                    mre2.Reset();


                    //Check that the timer is working correctly
                    for (int i = 0; i < 29; i++)
                    {
                        //Try to get the time remaining.
                        playerOne.BeginReceive(CompletedReceiveOne, 1);
                        playerTwo.BeginReceive(CompletedReceiveTwo, 2);
                        mre1.Reset();
                        mre2.Reset();
                    }

                    playerOne.BeginSend("WORD to\n", (o, e) => { }, null);
                    playerOne.BeginSend("WORD sap\n", (o, e) => { }, null);
                    playerOne.BeginSend("WORD seat\n", (o, e) => { }, null);
                    playerOne.BeginSend("WORD sat\n", (o, e) => { }, null);

                    Thread.Sleep(11000);

                    playerTwo.BeginSend("WORD to\n", (o, e) => { }, null);
                    playerTwo.BeginSend("WORD sap\n", (o, e) => { }, null);
                    playerTwo.BeginSend("WORD irta\n", (o, e) => { }, null);
                    playerTwo.BeginSend("WORD rat\n", (o, e) => { }, null);

                    //add one for to
                    messagesReceivedOne.Add("SCORE " + 1 + " " + 0);
                    messagesReceivedOne.Add("SCORE " + 0 + " " + 0);
                    messagesReceivedOne.Add("SCORE " + 1 + " " + 0);

                    //add one for to
                    messagesReceivedTwo.Add("SCORE " + 0 + " " + 0);
                    messagesReceivedTwo.Add("SCORE " + 0 + " " + 0);
                    messagesReceivedTwo.Add("SCORE " + 1 + " " + 0);

                    Thread.Sleep(11000);

                    ////Do asserts
                    //// waits for one second, expecting the callback to trigger the mre1 signal
                    //Assert.IsTrue(mre1.WaitOne(1000));
                    //Assert.AreEqual("STOP 1 sat 1 rat 1 sap 1 seat 1 irta", s1);

                    //// waits for one second, expecting the callback to trigger the mre2 signal
                    //Assert.IsTrue(mre2.WaitOne(1000));
                    //Assert.AreEqual("STOP 1 rat 1 sat 1 sap 1 irta 1 seat", s2);
                }
                finally
                {
                    server.Stop();
                    clientOne.Close();
                    clientTwo.Close();
                }
            }
예제 #13
0
            public void run()
            {
                BoggleServer.BoggleServer server = null;
                TcpClient clientOne = null;
                TcpClient clientTwo = null;

                try
                {
                    string[] args = { "20", "../../../Resources/dictionary.txt", "serspatglinesers" };
                    server = new BoggleServer.BoggleServer(args);

                    // create player one connection
                    clientOne = new TcpClient("localhost", 2000);
                    Socket       clientOneSocket = clientOne.Client;
                    StringSocket playerOne       = new StringSocket(clientOneSocket, new UTF8Encoding());

                    // create player two connection
                    clientTwo = new TcpClient("localhost", 2000);
                    Socket       clientTwoSocket = clientTwo.Client;
                    StringSocket playerTwo       = new StringSocket(clientTwoSocket, new UTF8Encoding());

                    mre1 = new ManualResetEvent(false);
                    mre2 = new ManualResetEvent(false);

                    // have player one join the boggle game
                    playerOne.BeginSend("PLAY Basil\n", (o, e) => { }, null);

                    // have player two join the boggle game
                    playerTwo.BeginSend("PLAY Lance\n", (o, e) => { }, null);

                    playerOne.BeginReceive(CompletedReceiveOne, 1);
                    playerTwo.BeginReceive(CompletedReceiveTwo, 2);

                    // waits for one second, expecting the callback to trigger the mre1 signal
                    Assert.IsTrue(mre1.WaitOne(1000));
                    Assert.AreEqual("START SERSPATGLINESERS 20 LANCE", s1);

                    // waits for one second, expecting the callback to trigger the mre2 signal
                    Assert.IsTrue(mre2.WaitOne(1000));
                    Assert.AreEqual("START SERSPATGLINESERS 20 BASIL", s2);

                    //Reset the mres
                    mre1.Reset();
                    mre2.Reset();

                    //Check that the timer is working correctly
                    for (int i = 0; i < 29; i++)
                    {
                        //Try to get the time remaining.
                        playerOne.BeginReceive(CompletedReceiveOne, 1);
                        playerTwo.BeginReceive(CompletedReceiveTwo, 2);
                        mre1.Reset();
                        mre2.Reset();
                    }

                    playerOne.BeginSend("WORD step\n", (o, e) => { }, null);
                    playerOne.BeginSend("WORD large\n", (o, e) => { }, null);
                    playerOne.BeginSend("WORD larger\n", (o, e) => { }, null);
                    playerOne.BeginSend("WORD genital\n", (o, e) => { }, null);
                    playerOne.BeginSend("WORD trainers\n", (o, e) => { }, null);

                    Thread.Sleep(22000);
                }
                finally
                {
                    server.Stop();
                    clientOne.Close();
                    clientTwo.Close();
                }
            }