public void RemoveNotExistantDungeon_ThrowsException_Test() { // Arrange var quest = QuestFactory.CreateStored(out var gameStore, out var gameId); var removeDungeon = DungeonMessage.CreateRemove(1, new[] { epicDungeon }); // Act & Assert Assert.Throws <InvalidActionException>(() => quest.AddMessage(gameId, removeDungeon)); }
public void AddDungeon_ThenRemoveIt_ResultsInNoChange_Test() { // Arrange var quest = QuestFactory.CreateStored(out var gameStore, out var gameId); var addDungeon = DungeonMessage.CreateAdd(1, new[] { epicDungeon }); var removeDungeon = DungeonMessage.CreateRemove(2, new[] { epicDungeon }); // Act quest.AddMessage(gameId, addDungeon); var game = quest.AddMessage(gameId, removeDungeon); // Assert Assert.Empty(game.Score.Dungeons); }
public void AddDungeon_ThenRemove_ThenUndoIt_ResultsInAddedDungeon_Test() { // Arrange var quest = QuestFactory.CreateStored(out var gameStore, out var gameId); var addDungeon = DungeonMessage.CreateAdd(1, new[] { epicDungeon }); var removeDungeon = DungeonMessage.CreateRemove(2, new[] { epicDungeon }); // Act quest.AddMessage(gameId, addDungeon); quest.AddMessage(gameId, removeDungeon); var game = quest.Undo(gameId); // Assert Assert.Single(game.Score.Dungeons); Assert.Equal(epicDungeon, game.Score.Dungeons.First()); }