Exemplo n.º 1
0
        public async Task Handle(UpdatePlayerName command)
        {
            var aggregateGame = await _store.GetById <Game>(command.GameId);

            aggregateGame.UpdatePlayer(command.Name, command.Position);
            await _store.Save(aggregateGame, aggregateGame.Version);
        }
        public async void GameCommandHandlerHandlesUpdatePlayerNameCommand()
        {
            // Arrange
            var mockAggregateRepo = new Mock <IAggregateRepository>();
            var fakeGame          = new Game();

            mockAggregateRepo.Setup(m => m.GetById <Game>(Guid.Empty)).Returns(Task.FromResult(fakeGame));
            var newCommandId = Guid.NewGuid();
            var fakeCommand  = new UpdatePlayerName(newCommandId, 0, Guid.Empty, "Dave", 1);
            var sut          = new GameCommandHandler(mockAggregateRepo.Object);

            // Act
            await sut.Handle(fakeCommand);

            //Assert
            mockAggregateRepo.Verify(m => m.GetById <Game>(Guid.Empty), Times.Once);
            mockAggregateRepo.Verify(m => m.Save(It.IsAny <Game>(), It.IsAny <int>()), Times.Once);
            Assert.Equal(1, fakeGame.GetUncommittedChanges().Count());
            Assert.Equal(typeof(PlayerNameUpdated), fakeGame.GetUncommittedChanges().First().GetType());
        }
 public async Task Handle(UpdatePlayerName command)
 {
     await Command.Save(command);
 }