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)); }
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)); }
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)); }
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); }
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); }
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); }