public void AggregateVersionIsSetToLatestEventId()
        {
            var testAggregateId = Guid.NewGuid();

            var firstEvent = new GameCreatedEvent()
            {
                AggregateId = testAggregateId, GameDate = DateTime.Now
            };
            var secondEvent = new PlayerAddedToGameEvent()
            {
                AggregateId = testAggregateId, PlayerId = Guid.NewGuid()
            };

            using (var testEvents = CreateEventsTable())
            {
                testEvents.Rows.Add(SerializeEvent(firstEvent), firstEvent.GetType().AssemblyQualifiedName);
                testEvents.Rows.Add(SerializeEvent(secondEvent), secondEvent.GetType().AssemblyQualifiedName);

                var mockDatabaseLayer = new Mock <IDatabaseLayer>();
                mockDatabaseLayer.Setup(x => x.GetDataTable(It.IsAny <string>(), It.IsAny <object[]>())).Returns(testEvents);

                var sut = new EventRepository(
                    mockDatabaseLayer.Object,
                    null,
                    null,
                    null);

                var result = sut.GetAggregateById <Game>(testAggregateId);

                Assert.AreEqual(secondEvent.EventId, result.AggregateVersion);
            }
        }