private async Task SudokuVerifyPuzzleRequest(IWebSocket socket, string json) { VerifySudokuRequest sudokuPuzzleStateMessage = JsonConvert.DeserializeObject <VerifySudokuRequest>(json); SudokuPuzzle puzzle = new SudokuPuzzle(new PuzzleState(Encoding.Default.GetBytes(sudokuPuzzleStateMessage.Data.PuzzleAsString))); PuzzleSolveDto solve = _sudokuPuzzleService.Solve(puzzle); VerifySudokuPuzzleResponse verifySudokuEvenMessage; if (!solve.Success) { verifySudokuEvenMessage = new VerifySudokuPuzzleResponse { Data = default,
public async Task SudokuVerifyRequest_Should_Send_PuzzleState_With_27_CorrectIndexes() { VerifySudokuRequest sudokuVerifyRequest = new VerifySudokuRequest { Data = new VerifiableSudokuState { PuzzleAsString = "034007008080065000000300070200000700710040096005000001050002000000170060600900430", CurrentPuzzle = "034007008080065000000300070200000700710040096005000001050002000000170060600900430" }, EventName = "sudokuVerifyRequest" }; string json = JsonConvert.SerializeObject(sudokuVerifyRequest); byte[] messageBuffer = Encoding.Default.GetBytes(json); WebSocketMock webSocketMock = new WebSocketMock(); await _puzzleHandler.ReceiveAsync(webSocketMock, messageBuffer); (_, ArraySegment <byte> arraySegment) = webSocketMock.SentMessages.Last(); string responseJson = Encoding.Default.GetString(arraySegment); VerifySudokuPuzzleResponse verifySudokuPuzzleResponse = JsonConvert.DeserializeObject <VerifySudokuPuzzleResponse>(responseJson); Assert.IsTrue(verifySudokuPuzzleResponse.Data.CorrectIndexes.Length == 27); }