Beispiel #1
0
        public async Task <bool> IsBoardComputationFinished(Guid sessionToken)
        {
            var boards = await StateManager.GetOrAddAsync <IReliableDictionary <Guid, GameBoard> >(BoardDictionaryKey);

            using (var tx = StateManager.CreateTransaction())
            {
                var board = await boards.TryGetValueAsync(tx, sessionToken);

                return(board.HasValue && await _boardComputer.IsComputationFinished(board.Value));
            }
        }
        public async Task IsComputationFinished_WhenRulesAreValid_ReturnsFalse()
        {
            var someBoard = new GameBoard
            {
                Board = new List <BoardCell>
                {
                    new BoardCell(0, 0, false),
                    new BoardCell(1, 0, true),
                    new BoardCell(2, 0, false),

                    new BoardCell(0, 1, false),
                    new BoardCell(1, 1, true),
                    new BoardCell(2, 1, false),

                    new BoardCell(0, 2, false),
                    new BoardCell(1, 2, false),
                    new BoardCell(2, 2, false),
                }
            };

            var result = await _sut.IsComputationFinished(someBoard);

            Assert.IsFalse(result);
        }