Ejemplo n.º 1
0
        public void EndingANotStartedGame_ThrowsException_Test()
        {
            // Arrange
            var quest  = QuestFactory.CreateStored(out var gameStore, out var gameId);
            var endMsg = EndMessage.Create(1);

            // Act & Assert
            Assert.Throws <InvalidActionException>(() => quest.AddMessage(gameId, endMsg));
        }
Ejemplo n.º 2
0
        public void AddTwoMessagesWithGapInSequence_ThrowsGameOutOfSyncException_Test()
        {
            // Arrange
            var startMsg = StartMessage.Create(1);
            var endMsg   = EndMessage.Create(3);

            // Act & Assert
            _quest.AddMessage(_gameId, startMsg);
            Assert.Throws <GameOutOfSyncException>(() => _quest.AddMessage(_gameId, endMsg));
        }
Ejemplo n.º 3
0
        public void EndingGameTwice_ThrowsException_Test()
        {
            // Arrange
            var quest        = QuestFactory.CreateStored(out var gameStore, out var gameId);
            var startMsg     = StartMessage.Create(1);
            var endMsg       = EndMessage.Create(2);
            var secondEndMsg = EndMessage.Create(3);

            // Act & Assert
            quest.AddMessage(gameId, startMsg);
            quest.AddMessage(gameId, endMsg);
            Assert.Throws <InvalidActionException>(() => quest.AddMessage(gameId, secondEndMsg));
        }
Ejemplo n.º 4
0
        public void AddStartAndEndMessagesWithCorrectSequence_ResultsInEndedGame_Test()
        {
            // Arrange
            var startMsg = StartMessage.Create(1);
            var endMsg   = EndMessage.Create(2);

            // Act
            _quest.AddMessage(_gameId, startMsg);
            var game = _quest.AddMessage(_gameId, endMsg);

            // Assert
            Assert.NotNull(game.Score.Begin);
            Assert.NotNull(game.Score.End);
        }
Ejemplo n.º 5
0
        public void EndingGame_ThenUndoIt_RemovesTheEndTimestamp_Test()
        {
            // Arrange
            var quest    = QuestFactory.CreateStored(out var gameStore, out var gameId);
            var startMsg = StartMessage.Create(1);
            var endMsg   = EndMessage.Create(2);

            // Act
            quest.AddMessage(gameId, startMsg);
            quest.AddMessage(gameId, endMsg);
            var game = quest.Undo(gameId);

            // Assert
            Assert.Null(game.Score.End);
        }
Ejemplo n.º 6
0
        public void EndingAStartedGame_EndsItByAddingTimestamp_Test()
        {
            // Arrange
            var quest    = QuestFactory.CreateStored(out var gameStore, out var gameId);
            var startMsg = StartMessage.Create(1);
            var endMsg   = EndMessage.Create(2);

            // Act
            quest.AddMessage(gameId, startMsg);
            var game = quest.AddMessage(gameId, endMsg);

            // Assert
            Assert.NotNull(game.Score.End);
            Assert.Equal(endMsg.Timestamp, game.Score.End);
        }