public void ProcessDuplicateEvent()
        {
            var testEvent = new GameCreatedEvent();
            var mockIdempotencyChecker = new Mock<IIdempotencyChecker>();
            var mockQueryDataStore = new Mock<IQueryDataStore>();

            mockIdempotencyChecker.Setup(x => x.CheckIdempotency(testEvent.EventId)).Returns(true);

            var sut = new EventHandlerFactory(mockQueryDataStore.Object, mockIdempotencyChecker.Object, null);

            sut.HandleEvent(testEvent);

            mockQueryDataStore.Verify(x => x.Insert(It.IsAny<GetGameCountByDateDto>()), Times.Never());
        }
        public void ProcessNewEvent()
        {
            var testEvent = new GameCreatedEvent();
            var mockIdempotencyChecker = new Mock<IIdempotencyChecker>();
            var mockQueryDataStore = new Mock<IQueryDataStore>();
            var mockDatabaseLayer = new Mock<IDatabaseLayer>();

            mockDatabaseLayer.Setup(x => x.ExecuteInTransaction(It.IsAny<Action>())).Callback<Action>(x => x());

            mockIdempotencyChecker.Setup(x => x.CheckIdempotency(testEvent.EventId)).Returns(false);

            var sut = new EventHandlerFactory(mockQueryDataStore.Object, mockIdempotencyChecker.Object, mockDatabaseLayer.Object);

            sut.HandleEvent(testEvent);

            mockQueryDataStore.Verify(x => x.Insert(It.IsAny<GetGameCountByDateDto>()));
        }
 private void ApplyEvent(GameCreatedEvent e)
 {
     AggregateId = e.AggregateId;
 }