public async Task Handle(PlayerNameUpdated message)
        {
            var gameToUpdate = await _read.Get <GameDetails>(message.GameId);

            gameToUpdate.Players[message.Position].Name = message.Name;
            gameToUpdate.Version = message.Version;
            await _save.Put(gameToUpdate);
        }
        public async void AGameEventHandlerShouldHandleThePlayerNameUpdatedEvent()
        {
            var mockReadFac = new Mock <IReadModelFacade>();
            var mockReadPer = new Mock <IReadModelPersistence>();
            var fakeEvent   = new PlayerNameUpdated(Guid.Empty, "Dave", 1)
            {
                Version = 1
            };
            var gameDetails = new GameDetails();

            mockReadFac.Setup(m => m.Get <GameDetails>(Guid.Empty)).Returns(Task.FromResult(gameDetails));
            var sut = new GameEventHandler(mockReadFac.Object, mockReadPer.Object);
            await sut.Handle(fakeEvent);

            Assert.Equal("Dave", gameDetails.Players[1].Name);
            Assert.Equal(1, gameDetails.Version);

            mockReadPer.Verify(m => m.Put(It.IsAny <GameDetails>()), Times.Once);
        }