示例#1
0
        public void Process_Request_Send_Json()
        {
            var zSocket      = new MockZSocket();
            var ticTacToeBox = new List <string>
            {
                "x",
                "-2-",
                "-3-",
                "-4-",
                "-5-",
                "-6-",
                "-7-",
                "@",
                "-9-"
            };

            var mockAi = new MockAi()
                         .StubMove(
                new TicTacToeBoxClass.TicTacToeBox(
                    ListModule.OfSeq(ticTacToeBox)));

            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter(),
                                                        new ServiceDependents(new JsonConverter(),
                                                                              new TicTacToeGame(new User(), mockAi,
                                                                                                MakeSettings())));
            var statusCode = service.ProcessRequest(GetJsonData(),
                                                    new HttpResponse(zSocket), serverProperties);
            var example =
                @"{ ""board"" : [""x"", ""-2-"", ""-3-"", ""-4-"", ""-5-"", ""-6-"", ""-7-"", ""@"", ""-9-""], ""gameOver"" : ""false""}";

            zSocket.VerifySend(GetByte("HTTP/1.1 200 OK\r\n"),
                               GetByteCount("HTTP/1.1 200 OK\r\n"));

            zSocket.VerifySend(GetByte(example),
                               GetByteCount(example));

            zSocket.VerifySend(GetByte("Content-Length: "
                                       + GetByteCount(example)
                                       + "\r\n\r\n"),
                               GetByteCount("Content-Length: "
                                            + GetByteCount(example)
                                            + "\r\n\r\n"));

            zSocket.VerifySend(GetByte("Content-Type: application/JSON\r\n"),
                               GetByteCount("Content-Type: application/JSON\r\n"));

            zSocket.VerifySend(GetByte("Access-Control-Allow-Origin: *\r\n"),
                               GetByteCount("Access-Control-Allow-Origin: *\r\n"));
            Assert.Equal("200 OK", statusCode);
        }
        public void User_Moves()
        {
            var correctOutPut = new List <string>
            {
                "x",
                "@",
                "x",
                "x",
                "@",
                "x",
                "@",
                "x",
                "@"
            };

            var ticTacToeBox = new List <string>
            {
                "-1-",
                "@",
                "x",
                "x",
                "@",
                "x",
                "@",
                "x",
                "@"
            };

            var user = new User();
            var aI   = new MockAi();
            var game = new TicTacToeGame(
                user,
                aI,
                new GameSettings.gameSetting(3, "x", "@"
                                             , (int)PlayerValues.playerVals.Human
                                             , false, false, false)
                );

            var outputBox = game.Play(new TicTacToeBoxClass.TicTacToeBox(
                                          ListModule.OfSeq(ticTacToeBox)), 1);

            for (var i = 0; i < outputBox.cellCount(); i++)
            {
                Assert.Equal(correctOutPut[i], outputBox.getGlyphAtLocation(i));
            }
        }