Пример #1
0
        static void Main(string[] args)
        {
            _tickTackToe = new TicTacToeService();
            Console.WriteLine("Welcome");

            PlayTurn();
        }
Пример #2
0
        public void ShouldGetAllRoomsOfGame()
        {
            var service = TicTacToeService.GetInstance();
            var rooms   = service.GetListRooms();

            Assert.IsTrue(rooms.Count > 0);
        }
Пример #3
0
        public void ShouldNotCanBindPlayerMoreThanOneRoom()
        {
            var service = TicTacToeService.GetInstance();
            var rooms   = service.GetListRooms();

            service.BindPlayerInRoom("1", "test1", rooms[0].Name);
            service.BindPlayerInRoom("1", "test1", rooms[1].Name);
        }
Пример #4
0
        public void ShouldNotPlayerMakeMoveWhenItIsNotYourTime()
        {
            var service = TicTacToeService.GetInstance();
            var rooms   = service.GetListRooms();

            service.BindPlayerInRoom("1", "test1", rooms[0].Name);
            service.BindPlayerInRoom("2", "test2", rooms[0].Name);
            service.MakeMove("2", rooms[0].Name, "a1");
        }
Пример #5
0
        public void ShouldRemovePlayerRoom()
        {
            var service = TicTacToeService.GetInstance();
            var rooms   = service.GetListRooms();

            service.BindPlayerInRoom("1", "test1", rooms[0].Name);
            service.BindPlayerInRoom("2", "test2", rooms[0].Name);
            rooms[0].RemovePlayer("1");
        }
Пример #6
0
        public void ShouldNotCanBindARoomIfAlreadyHaveTwoPlayers()
        {
            var service = TicTacToeService.GetInstance();
            var rooms   = service.GetListRooms();
            var room    = rooms[0];

            service.BindPlayerInRoom("1", "test1", room.Name);
            service.BindPlayerInRoom("2", "test2", room.Name);
            service.BindPlayerInRoom("3", "test3", rooms[0].Name);
        }
Пример #7
0
        public void Empty_Request()
        {
            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter());

            Assert.False(service.CanProcessRequest("",
                                                   serverProperties));
        }
        public async Task DeleteAsync_InexistentId_ShouldReturnResultResponseWithError()
        {
            var ticTacToeService = new TicTacToeService(_repositoryMock.Object);

            var result = await _ticTacToeService.DeleteAsync(_ticTacToeTestsFixture.GetInexistentTicTacToeId());

            result.Success.Should().BeFalse();
            result.ValidationErrors.FirstOrDefault().Message.Should().Be("The activity wasn't found");
            _repositoryMock.Verify(rm => rm.DeleteAsync(It.IsAny <TicTacToe>()), Times.Never);
        }
        public async Task DeleteAsync_ShouldReturnResultResponseWithSuccess()
        {
            var id = _ticTacToeTestsFixture.GetRandomInt();
            var ticTacToeService = new TicTacToeService(_repositoryMock.Object);

            var result = await _ticTacToeService.DeleteAsync(id);

            result.Success.Should().BeTrue();
            _repositoryMock.Verify(rm => rm.DeleteAsync(It.IsAny <TicTacToe>()), Times.Once);
        }
        public void Cant_Process_Root(string request)
        {
            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter());

            Assert.False(service.CanProcessRequest(request,
                                                   serverProperties));
        }
Пример #11
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);
        }
Пример #12
0
        public void ShouldCanBindTwoPlayerInRoom()
        {
            var service = TicTacToeService.GetInstance();
            var rooms   = service.GetListRooms();

            try
            {
                service.BindPlayerInRoom("1", "test1", rooms[0].Name);
                service.BindPlayerInRoom("2", "test2", rooms[0].Name);
            }
            catch
            {
                Assert.Fail("Exception in BindPlayerInRoom");
            }
        }
Пример #13
0
        public void Process_Request_Options()
        {
            var zSocket          = new MockZSocket();
            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter());
            var statusCode = service.ProcessRequest(GetOptionData(),
                                                    new HttpResponse(zSocket), serverProperties);

            zSocket.VerifySend(GetByte("HTTP/1.1 200 OK\r\n"),
                               GetByteCount("HTTP/1.1 200 OK\r\n"));
            zSocket.VerifySend(GetByte("Access-Control-Allow-Origin: *\r\n"),
                               GetByteCount("Access-Control-Allow-Origin: *\r\n"));
            zSocket.VerifySend(GetByte("Access-Control-Allow-Methods: POST, GET, OPTIONS\r\n"),
                               GetByteCount("Access-Control-Allow-Methods: POST, GET, OPTIONS\r\n"));
            Assert.Equal("200 OK", statusCode);
        }
Пример #14
0
        public void Process_Request_No_Send_Json()
        {
            var zSocket          = new MockZSocket();
            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter(),
                                                        new ServiceDependents(new JsonConverter(),
                                                                              new TicTacToeGame(new User(), new Ai(),
                                                                                                MakeSettings())));
            var statusCode =
                service.ProcessRequest(GetRequestNoJson(),
                                       new HttpResponse(zSocket), serverProperties);
            var example =
                @"{ ""board"" : [""-1-"", ""-2-"", ""-3-"", ""-4-"", ""-5-"", ""-6-"", ""-7-"", ""-8-"", ""-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);
        }
Пример #15
0
        public void Can_Process_Root(string requestListing)
        {
            var request = requestListing + "\r\n" +
                          "Host: localhost:8080\r\n" +
                          "Connection: keep-alive\r\n" +
                          "Content-Length: 33\r\n" +
                          "Cache-Control: max-age = 0\r\n" +
                          "Accept: text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp,*;q=0.8\r\n" +
                          "Origin: http://localhost:8080\r\n" +
                          "Upgrade-Insecure-Requests: 1\r\n" +
                          "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36\r\n" +
                          "Content-Type: application/JSON\r\n" +
                          "Referer: http://localhost:8080/form\r\n" +
                          "Accept-Encoding: gzip, deflate\r\n" +
                          "Accept-Language: en-US,en;q=0.8\r\n\r\n";

            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter());

            Assert.True(service.CanProcessRequest(request,
                                                  serverProperties));
        }
Пример #16
0
 public TicTacToe(TicTacToeService tic)
 {
     _games = tic._activeGames;
 }
        public void User_Moves_Spot_Taken()
        {
            var settings = new GameSettings.gameSetting(3, "x", "@"
                                                        , (int)PlayerValues.playerVals.Human
                                                        , false, false, false);
            var formPage = new StringBuilder();

            formPage.Append(@"<!DOCTYPE html>");
            formPage.Append(@"<html>");
            formPage.Append(@"<head><title>Vatic TicTacToe</title></head>");
            formPage.Append(@"<body>");
            formPage.Append(@"<p>Spot Taken</p>");
            formPage.Append(@"<form action=""/"" method=""post"">");
            formPage.Append(
                @"<table style=""width: 100 % "">" +
                "<tr>" +
                @"<td>x</td>" +
                @"<td>@</td>" +
                @"<td><button name=box type=""submit"" value=""-3-"">-3-</button></td></tr>" +
                "<tr>" +
                @"<td><button name=box type=""submit"" value=""-4-"">-4-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-5-"">-5-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-6-"">-6-</button></td></tr>" +
                "<tr>" +
                @"<td><button name=box type=""submit"" value=""-7-"">-7-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-8-"">-8-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-9-"">-9-</button></td></tr>"
                + "</table>"
                );

            formPage.Append(@"<input type=""hidden"" name=""pos" + 0 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 1 + @""" value=""@""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 2 + @""" value=""-3-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 3 + @""" value=""-4-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 4 + @""" value=""-5-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 5 + @""" value=""-6-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 6 + @""" value=""-7-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 7 + @""" value=""-8-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 8 + @""" value=""-9-""><br>");
            formPage.Append(@"</form>");
            formPage.Append(@"</body>");
            formPage.Append(@"</html>");
            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter(),
                                                        new TicTacToeGame(new User(), new Ai(), settings));
            var request = new StringBuilder();

            request.Append("POST / HTTP/1.1\r\n");
            request.Append("Host: localhost:8080\r\n");
            request.Append("Connection: keep-alive\r\n");
            request.Append("Content-Length: 86\r\n");
            request.Append("Cache-Control: max-age=0\r\n");
            request.Append("Origin: http://localhost:8080\r\n");
            request.Append("Upgrade-Insecure-Requests: 1\r\n");
            request.Append(
                "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36\r\n");
            request.Append("Content-Type: application/x-www-form-urlencoded\r\n");
            request.Append("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*;q=0.8\r\n");
            request.Append("Referer: http://localhost:8080/\r\n");
            request.Append("Accept-Encoding: gzip, deflate\r\n");
            request.Append("Accept-Language: en-US,en;q=0.8\r\n\r\n");

            request.Append("box=1&pos0=x&pos1=@&pos2=-3-&pos3=-4-&pos4=-5-&pos5=-6-&pos6=-7-&pos7=-8-&pos8=-9-");

            var zSocket    = new MockZSocket();
            var statueCode = service.ProcessRequest(request.ToString(),
                                                    new HttpResponse(zSocket),
                                                    serverProperties);

            Assert.Equal("200 OK", statueCode);
            zSocket.VerifySend(GetByte("HTTP/1.1 200 OK\r\n"),
                               GetByteCount("HTTP/1.1 200 OK\r\n"));
            zSocket.VerifySend(GetByte("Cache-Control: no-cache\r\n"),
                               GetByteCount("Cache-Control: no-cache\r\n"));
            zSocket.VerifySend(GetByte("Content-Type: text/html\r\n"),
                               GetByteCount("Content-Type: text/html\r\n"));
            zSocket.VerifySend(GetByte("Content-Length: "
                                       + GetByteCount(formPage.ToString())
                                       + "\r\n\r\n"),
                               GetByteCount("Content-Length: "
                                            + GetByteCount(formPage.ToString())
                                            + "\r\n\r\n"));
        }
 public TicTacToeServiceTests(TicTacToeTestsFixture ticTacToeTestsFixture)
 {
     _ticTacToeTestsFixture = ticTacToeTestsFixture;
     _repositoryMock        = _ticTacToeTestsFixture.GetTicTacToeRepositoryMock();
     _ticTacToeService      = new TicTacToeService(_repositoryMock.Object);
 }
        public void Get_Request(string request)
        {
            var formPage = new StringBuilder();

            formPage.Append(@"<!DOCTYPE html>");
            formPage.Append(@"<html>");
            formPage.Append(@"<head><title>Vatic TicTacToe</title></head>");
            formPage.Append(@"<body>");
            formPage.Append(@"<form action=""/"" method=""post"">");
            formPage.Append(
                @"<table style=""width: 100 % "">" +
                "<tr>" +
                @"<td><button name=box type=""submit"" value=""-1-"">-1-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-2-"">-2-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-3-"">-3-</button></td>" +
                "</tr>" +
                "<tr>" +
                @"<td><button name=box type=""submit"" value=""-4-"">-4-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-5-"">-5-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-6-"">-6-</button></td>" +
                "</tr>" +
                "<tr>" +
                @"<td><button name=box type=""submit"" value=""-7-"">-7-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-8-"">-8-</button></td>" +
                @"<td><button name=box type=""submit"" value=""-9-"">-9-</button></td>" +
                "</tr>" +
                "</table>"
                );
            formPage.Append(@"<input type=""hidden"" name=""pos" + 0 + @""" value=""-" +
                            1 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 1 + @""" value=""-" +
                            2 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 2 + @""" value=""-" +
                            3 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 3 + @""" value=""-" +
                            4 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 4 + @""" value=""-" +
                            5 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 5 + @""" value=""-" +
                            6 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 6 + @""" value=""-" +
                            7 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 7 + @""" value=""-" +
                            8 + @"-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 8 + @""" value=""-" +
                            9 + @"-""><br>");
            formPage.Append(@"</form>");
            formPage.Append(@"</body>");
            formPage.Append(@"</html>");

            var zSocket          = new MockZSocket();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter());
            var service    = new TicTacToeService();
            var statueCode = service.ProcessRequest(request,
                                                    new HttpResponse(zSocket),
                                                    serverProperties);

            Assert.Equal("200 OK", statueCode);
            zSocket.VerifySend(GetByte("HTTP/1.1 200 OK\r\n"),
                               GetByteCount("HTTP/1.1 200 OK\r\n"));
            zSocket.VerifySend(GetByte("Cache-Control: no-cache\r\n"),
                               GetByteCount("Cache-Control: no-cache\r\n"));
            zSocket.VerifySend(GetByte("Content-Type: text/html\r\n"),
                               GetByteCount("Content-Type: text/html\r\n"));
            zSocket.VerifySend(GetByte("Content-Length: "
                                       + GetByteCount(formPage.ToString())
                                       + "\r\n\r\n"),
                               GetByteCount("Content-Length: "
                                            + GetByteCount(formPage.ToString())
                                            + "\r\n\r\n"));

            zSocket.VerifySend(GetByte(formPage.ToString()),
                               GetByteCount(formPage.ToString()));
        }
Пример #20
0
 // Constructor
 public TicTacToeModule(InteractiveService interactiveService, TicTacToeService tttService)
 {
     this.interactiveService = interactiveService;
     this.tttService         = tttService;
 }
Пример #21
0
 public TicTacToeModule(IConfiguration config, TicTacToeService service) : base(config)
 {
     _tttService              = service;
     _tttService.Config       = config;
     _tttService.ParentModule = this;
 }
Пример #22
0
 public TicTacToeHub()
 {
     _service = TicTacToeService.GetInstance();
 }
Пример #23
0
 public void Setup()
 {
     _ticTacToe = new TicTacToeService();
 }
        public void Game_Is_Over()
        {
            var userTicTacToeBox = new List <string>
            {
                "x",
                "x",
                "x",
                "x",
                "x",
                "x",
                "x",
                "x",
                "x"
            };

            var aITicTacToeBox = new List <string>
            {
                "x",
                "x",
                "x",
                "x",
                "x",
                "x",
                "x",
                "x",
                "x"
            };

            var settings = new GameSettings.gameSetting(3, "x", "@"
                                                        , (int)PlayerValues.playerVals.Human
                                                        , false, false, false);
            var formPage = new StringBuilder();

            formPage.Append(@"<!DOCTYPE html>");
            formPage.Append(@"<html>");
            formPage.Append(@"<head><title>Vatic TicTacToe</title></head>");
            formPage.Append(@"<body>");
            formPage.Append(@"<p>Game Over</p>");
            formPage.Append(@"<a href=""http://127.0.0.1:5555""><button>Another Game?</button></a>");
            formPage.Append(@"<form action=""/"" method=""post"">");
            formPage.Append(
                @"<table style=""width: 100 % "">" +
                "<tr>" +
                @"<td>-1-</td>" +
                @"<td>x</td>" +
                @"<td>x</td></tr>" +
                "<tr>" +
                @"<td>x</td>" +
                @"<td>x</td>" +
                @"<td>x</td></tr>" +
                "<tr>" +
                @"<td>x</td>" +
                @"<td>x</td>" +
                @"<td>-9-</td></tr>"
                + "</table>"
                );
            formPage.Append(@"<input type=""hidden"" name=""pos" + 0 + @""" value=""-1-""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 1 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 2 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 3 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 4 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 5 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 6 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 7 + @""" value=""x""><br>");
            formPage.Append(@"<input type=""hidden"" name=""pos" + 8 + @""" value=""-9-""><br>");
            formPage.Append(@"</form>");
            formPage.Append(@"</body>");
            formPage.Append(@"</html>");
            var service          = new TicTacToeService();
            var serverProperties = new ServerProperties(null,
                                                        5555, new ServerTime(),
                                                        new MockPrinter(),
                                                        new TicTacToeGame(new MockUser()
                                                                          .StubMove(new TicTacToeBoxClass.TicTacToeBox(
                                                                                        ListModule.OfSeq(userTicTacToeBox)))
                                                                          , new MockAi()
                                                                          .StubMove(new TicTacToeBoxClass.TicTacToeBox(
                                                                                        ListModule.OfSeq(aITicTacToeBox))),
                                                                          settings));
            var request = new StringBuilder();

            request.Append("POST / HTTP/1.1\r\n");
            request.Append("Host: localhost:8080\r\n");
            request.Append("Connection: keep-alive\r\n");
            request.Append("Content-Length: 86\r\n");
            request.Append("Cache-Control: max-age=0\r\n");
            request.Append("Origin: http://localhost:8080\r\n");
            request.Append("Upgrade-Insecure-Requests: 1\r\n");
            request.Append(
                "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36\r\n");
            request.Append("Content-Type: application/x-www-form-urlencoded\r\n");
            request.Append("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*;q=0.8\r\n");
            request.Append("Referer: http://localhost:8080/\r\n");
            request.Append("Accept-Encoding: gzip, deflate\r\n");
            request.Append("Accept-Language: en-US,en;q=0.8\r\n\r\n");

            request.Append("box=-9-&pos0=-1-&pos1=x&pos2=x&pos3=x&pos4=x&pos5=x&pos6=x&pos7=x&pos8=-9-");

            var zSocket    = new MockZSocket();
            var statueCode = service.ProcessRequest(request.ToString(),
                                                    new HttpResponse(zSocket),
                                                    serverProperties);

            Assert.Equal("200 OK", statueCode);
            zSocket.VerifySend(GetByte("HTTP/1.1 200 OK\r\n"),
                               GetByteCount("HTTP/1.1 200 OK\r\n"));
            zSocket.VerifySend(GetByte("Cache-Control: no-cache\r\n"),
                               GetByteCount("Cache-Control: no-cache\r\n"));
            zSocket.VerifySend(GetByte("Content-Type: text/html\r\n"),
                               GetByteCount("Content-Type: text/html\r\n"));
            zSocket.VerifySend(GetByte("Content-Length: "
                                       + GetByteCount(formPage.ToString())
                                       + "\r\n\r\n"),
                               GetByteCount("Content-Length: "
                                            + GetByteCount(formPage.ToString())
                                            + "\r\n\r\n"));
        }