예제 #1
0
        public async Task PreviouslySolvedPuzzlesRequest_Should_Send_A_List_With_One_SudokuPuzzle()
        {
            SolveSudokuRequest solveSudokuRequest = new SolveSudokuRequest
            {
                Data = new SudokuPuzzleState
                {
                    PuzzleAsString = "034007008080065000000300070200000700710040096005000001050002000000170060600900430"
                },
                EventName = "sudokuSolvePuzzleRequest"
            };
            string jsonSolve = JsonConvert.SerializeObject(solveSudokuRequest);

            byte[]        messageBufferSolve  = Encoding.Default.GetBytes(jsonSolve);
            WebSocketMock webSocketMockSolver = new WebSocketMock();

            _httpHandler.AddResponse(GetDefaultSavePuzzle());
            await _puzzleHandler.ReceiveAsync(webSocketMockSolver, messageBufferSolve);

            PreMessage previouslySolvedPuzzlesRequest = new PreMessage
            {
                EventName = "previouslySolvedPuzzlesRequest"
            };
            string json = JsonConvert.SerializeObject(previouslySolvedPuzzlesRequest);

            byte[]        messageBuffer = Encoding.Default.GetBytes(json);
            WebSocketMock webSocketMock = new WebSocketMock();
            PuzzleDto     puzzleDto     = new PuzzleDto
            {
                OriginalPuzzle = "034007008080065000000300070200000700710040096005000001050002000000170060600900430",
                PuzzleId       = 1,
                PuzzleType     = "Sudoku",
                SolvedPuzzle   = "534297618187465329962381574246819753718543296395726841459632187823174965671958432"
            };

            _httpHandler.AddResponse(GetPreviouslySolvedPuzzles(new List <PuzzleDto> {
                puzzleDto
            }));

            await _puzzleHandler.ReceiveAsync(webSocketMock, messageBuffer);

            (_, ArraySegment <byte> arraySegment) = webSocketMock.SentMessages.First();
            string responseJson = Encoding.Default.GetString(arraySegment);
            PreviouslySolvedPuzzlesResponse sudokuGeneratePuzzleResponse = JsonConvert.DeserializeObject <PreviouslySolvedPuzzlesResponse>(responseJson);

            Assert.IsTrue(sudokuGeneratePuzzleResponse.Success);
            Assert.IsTrue(sudokuGeneratePuzzleResponse.Data.Puzzles.Count(puzzle => puzzle.PuzzleType.Equals("Sudoku")) == 1);
        }
예제 #2
0
        public async Task PreviouslySolvedPuzzlesRequest_Should_Send_An_Empty_List()
        {
            PreMessage previouslySolvedPuzzlesRequest = new PreMessage
            {
                EventName = "previouslySolvedPuzzlesRequest"
            };
            string json = JsonConvert.SerializeObject(previouslySolvedPuzzlesRequest);

            byte[]        messageBuffer = Encoding.Default.GetBytes(json);
            WebSocketMock webSocketMock = new WebSocketMock();

            _httpHandler.AddResponse(GetPreviouslySolvedPuzzles(new List <PuzzleDto>()));

            await _puzzleHandler.ReceiveAsync(webSocketMock, messageBuffer);

            (_, ArraySegment <byte> arraySegment) = webSocketMock.SentMessages.First();
            string responseJson = Encoding.Default.GetString(arraySegment);
            PreviouslySolvedPuzzlesResponse sudokuGeneratePuzzleResponse = JsonConvert.DeserializeObject <PreviouslySolvedPuzzlesResponse>(responseJson);

            Assert.IsTrue(sudokuGeneratePuzzleResponse.Success);
            Assert.IsFalse(sudokuGeneratePuzzleResponse.Data.Puzzles.Any());
        }