public void ShouldLogFailedCommand() { var testCommand = new EnterGameResultsCommand(); testCommand.GameDate = DateTime.Now.AddDays(-2); testCommand.CommandId = Guid.NewGuid(); testCommand.GameId = Guid.NewGuid(); testCommand.IPAddress = "12.34.56.78"; testCommand.User = "******"; testCommand.Timestamp = DateTime.Now; var newPlayerA = new EnterGameResultsCommand.GamePlayer(); newPlayerA.PlayerName = "Dylan Smith"; newPlayerA.Placing = 1; newPlayerA.Winnings = 120; newPlayerA.PayIn = 60; var newPlayerB = new EnterGameResultsCommand.GamePlayer(); newPlayerB.PlayerName = "Homer Simpson"; newPlayerB.Placing = 2; newPlayerB.Winnings = 0; newPlayerB.PayIn = 60; var players = new List <EnterGameResultsCommand.GamePlayer>(); players.Add(newPlayerA); players.Add(newPlayerB); testCommand.Players = players; var mockCommandRepository = new Mock <ICommandRepository>(); var mockEventRepository = new Mock <IEventRepository>(); var mockQueryService = new Mock <IQueryService>(); var sut = new CommandHandlerFactory( mockEventRepository.Object, mockQueryService.Object, mockCommandRepository.Object); var ex = new ArgumentException("foo"); mockEventRepository.Setup(x => x.PublishEvents(It.IsAny <IAggregateRoot>(), testCommand)).Throws(ex); try { sut.ExecuteCommand(testCommand); } catch { // eat all exceptions } mockCommandRepository.Verify(x => x.LogCommand(testCommand)); mockCommandRepository.Verify(x => x.LogFailedCommand(testCommand, ex)); }
public void RunTest(IEnumerable <ICommand> commands) { Setup(); var repository = new FakeEventRepository(); repository.InitialEvents = Given(); var queryDataStore = new FakeQueryDataStore(); var queryService = new QueryHandlerFactory(queryDataStore); var commandRepository = new Mock <ICommandRepository>(); HandleEvents(repository.InitialEvents, queryDataStore); Exception caughtException = null; var commandHandlerFactory = new CommandHandlerFactory(repository, queryService, commandRepository.Object); var generatedEvents = new List <IEvent>(); foreach (var command in commands) { try { commandHandlerFactory.ExecuteCommand(command); } catch (Exception e) { if (ExpectedException() == null) { throw; } caughtException = e; } HandleEvents(repository.EventList, queryDataStore); generatedEvents.AddRange(repository.EventList); repository.InitialEvents = new List <IEvent>(repository.InitialEvents).Concat(repository.EventList).ToList(); repository.EventList.Clear(); } if (caughtException != null || ExpectedException() != null) { if (caughtException != null && ExpectedException() != null) { Assert.AreEqual(ExpectedException().GetType(), caughtException.GetType()); } else { Assert.Fail("There was an Expected Exception but none was thrown."); } } ValidateExpectedEvents(ExpectedEvents(), generatedEvents); }
public void RunTest(ICommand command) { Setup(); var repository = new FakeEventRepository(); repository.InitialEvents = Given(); var queryDataStore = new FakeQueryDataStore(); var queryService = new QueryHandlerFactory(queryDataStore); var commandRepository = new Mock <ICommandRepository>(); HandleEvents(repository.InitialEvents, queryDataStore); Exception caughtException = null; var commandHandlerFactory = new CommandHandlerFactory(repository, queryService, commandRepository.Object); try { commandHandlerFactory.ExecuteCommand(command); } catch (Exception e) { if (ExpectedException() == null) { throw; } caughtException = e; } if (caughtException != null || ExpectedException() != null) { if (caughtException != null && ExpectedException() != null) { Assert.AreEqual(ExpectedException().GetType(), caughtException.GetType()); } else { Assert.Fail("There was an Expected Exception but none was thrown."); } } ValidateExpectedEvents(ExpectedEvents(), repository.EventList); }
public void RunTest(ICommand command) { Setup(); var repository = new FakeEventRepository(); repository.InitialEvents = Given(); var queryDataStore = new FakeQueryDataStore(); var queryService = new QueryHandler(queryDataStore); var commandRepository = new Mock<ICommandRepository>(); HandleEvents(repository.InitialEvents, queryDataStore); Exception caughtException = null; var commandHandlerFactory = new CommandHandlerFactory(repository, queryService, commandRepository.Object); try { commandHandlerFactory.ExecuteCommand(command); } catch (Exception e) { if (ExpectedException() == null) { throw; } caughtException = e; } if (caughtException != null || ExpectedException() != null) { if (caughtException != null && ExpectedException() != null) { Assert.AreEqual(ExpectedException().GetType(), caughtException.GetType()); } else { Assert.Fail("There was an Expected Exception but none was thrown."); } } ValidateExpectedEvents(ExpectedEvents(), repository.EventList); }
public void ShouldLogCommand() { var testCommand = new EnterGameResultsCommand(); testCommand.GameDate = DateTime.Now.AddDays(-2); testCommand.CommandId = Guid.NewGuid(); testCommand.GameId = Guid.NewGuid(); testCommand.IPAddress = "12.34.56.78"; testCommand.User = "******"; testCommand.Timestamp = DateTime.Now; var newPlayerA = new EnterGameResultsCommand.GamePlayer(); newPlayerA.PlayerName = "Dylan Smith"; newPlayerA.Placing = 1; newPlayerA.Winnings = 120; newPlayerA.PayIn = 60; var newPlayerB = new EnterGameResultsCommand.GamePlayer(); newPlayerB.PlayerName = "Homer Simpson"; newPlayerB.Placing = 2; newPlayerB.Winnings = 0; newPlayerB.PayIn = 60; var players = new List <EnterGameResultsCommand.GamePlayer>(); players.Add(newPlayerA); players.Add(newPlayerB); testCommand.Players = players; var mockCommandRepository = new Mock <ICommandRepository>(); var sut = new CommandHandlerFactory( new Mock <IEventRepository>().Object, new Mock <IQueryService>().Object, mockCommandRepository.Object); sut.ExecuteCommand(testCommand); mockCommandRepository.Verify(x => x.LogCommand(testCommand)); }
public void ShouldLogCommand() { var testCommand = new EnterGameResultsCommand(); testCommand.GameDate = DateTime.Now.AddDays(-2); testCommand.CommandId = Guid.NewGuid(); testCommand.GameId = Guid.NewGuid(); testCommand.IPAddress = "12.34.56.78"; testCommand.User = "******"; testCommand.Timestamp = DateTime.Now; var newPlayerA = new EnterGameResultsCommand.GamePlayer(); newPlayerA.PlayerName = "Dylan Smith"; newPlayerA.Placing = 1; newPlayerA.Winnings = 120; newPlayerA.PayIn = 60; var newPlayerB = new EnterGameResultsCommand.GamePlayer(); newPlayerB.PlayerName = "Homer Simpson"; newPlayerB.Placing = 2; newPlayerB.Winnings = 0; newPlayerB.PayIn = 60; var players = new List<EnterGameResultsCommand.GamePlayer>(); players.Add(newPlayerA); players.Add(newPlayerB); testCommand.Players = players; var mockCommandRepository = new Mock<ICommandRepository>(); var sut = new CommandHandlerFactory( new Mock<IEventRepository>().Object, new Mock<IQueryService>().Object, mockCommandRepository.Object); sut.ExecuteCommand(testCommand); mockCommandRepository.Verify(x => x.LogCommand(testCommand)); }
public void ShouldLogFailedCommand() { var testCommand = new CreateGameCommand(); testCommand.GameDate = DateTime.Now.AddDays(-2); testCommand.CommandId = Guid.NewGuid(); testCommand.GameId = Guid.NewGuid(); testCommand.IPAddress = "12.34.56.78"; testCommand.Timestamp = DateTime.Now; var mockCommandRepository = new Mock <ICommandRepository>(); var mockEventRepository = new Mock <IEventRepository>(); var mockQueryService = new Mock <IQueryService>(); mockQueryService.Setup(q => q.Execute(It.IsAny <GetGameCountByDateQuery>())).Returns(0); var sut = new CommandHandlerFactory( mockEventRepository.Object, mockQueryService.Object, mockCommandRepository.Object); var ex = new ArgumentException("foo"); mockEventRepository.Setup(x => x.PublishEvents(It.IsAny <IAggregateRoot>(), testCommand)).Throws(ex); try { sut.ExecuteCommand(testCommand); } catch { // eat all exceptions } mockCommandRepository.Verify(x => x.LogCommand(testCommand)); mockCommandRepository.Verify(x => x.LogFailedCommand(testCommand, ex)); }
public void ShouldLogCommand() { var testCommand = new CreateGameCommand(); testCommand.GameDate = DateTime.Now.AddDays(-2); testCommand.CommandId = Guid.NewGuid(); testCommand.GameId = Guid.NewGuid(); testCommand.IPAddress = "12.34.56.78"; testCommand.Timestamp = DateTime.Now; var mockCommandRepository = new Mock <ICommandRepository>(); var mockQueryService = new Mock <IQueryService>(); mockQueryService.Setup(q => q.Execute(It.IsAny <GetGameCountByDateQuery>())).Returns(0); var sut = new CommandHandlerFactory( new Mock <IEventRepository>().Object, mockQueryService.Object, mockCommandRepository.Object); sut.ExecuteCommand(testCommand); mockCommandRepository.Verify(x => x.LogCommand(testCommand)); }
public void ShouldLogFailedCommand() { var testCommand = new EnterGameResultsCommand(); testCommand.GameDate = DateTime.Now.AddDays(-2); testCommand.CommandId = Guid.NewGuid(); testCommand.GameId = Guid.NewGuid(); testCommand.IPAddress = "12.34.56.78"; testCommand.User = "******"; testCommand.Timestamp = DateTime.Now; var newPlayerA = new EnterGameResultsCommand.GamePlayer(); newPlayerA.PlayerName = "Dylan Smith"; newPlayerA.Placing = 1; newPlayerA.Winnings = 120; newPlayerA.PayIn = 60; var newPlayerB = new EnterGameResultsCommand.GamePlayer(); newPlayerB.PlayerName = "Homer Simpson"; newPlayerB.Placing = 2; newPlayerB.Winnings = 0; newPlayerB.PayIn = 60; var players = new List<EnterGameResultsCommand.GamePlayer>(); players.Add(newPlayerA); players.Add(newPlayerB); testCommand.Players = players; var mockCommandRepository = new Mock<ICommandRepository>(); var mockEventRepository = new Mock<IEventRepository>(); var mockQueryService = new Mock<IQueryService>(); var sut = new CommandHandlerFactory( mockEventRepository.Object, mockQueryService.Object, mockCommandRepository.Object); var ex = new ArgumentException("foo"); mockEventRepository.Setup(x => x.PublishEvents(It.IsAny<IAggregateRoot>(), testCommand)).Throws(ex); try { sut.ExecuteCommand(testCommand); } catch { // eat all exceptions } mockCommandRepository.Verify(x => x.LogCommand(testCommand)); mockCommandRepository.Verify(x => x.LogFailedCommand(testCommand, ex)); }