public void InaccessibleTypeParameterCanBeUsed()
        {
            // This test is necessary for checking that the repository can be used with inaccessible type parameters.
            // See the bug in .NET Framework: https://connect.microsoft.com/VisualStudio/feedback/details/672411/bug-in-dynamic-dispatch-when-using-generic-type-parameters

            InternalAggregateRoot aggregateRoot = new InternalAggregateRoot(Guid.NewGuid());
            aggregateRoot.ApplyEvent(domainEvent);

            var privateSut = new InternalAsyncDomainRepository(eventHandlerResolver);
            privateSut.ApplyChangesAsync(aggregateRoot).Wait();

            domainEventHandler1.Received().ExecuteAsync(domainEvent);
            domainEventHandler2.Received().ExecuteAsync(domainEvent);
        }
        public void InaccessibleTypeParameterCanBeUsed()
        {
            // This test is necessary for checking that the repository can be used with inaccessible type parameters.
            // See the bug in .NET Framework: https://connect.microsoft.com/VisualStudio/feedback/details/672411/bug-in-dynamic-dispatch-when-using-generic-type-parameters

            InternalAggregateRoot aggregateRoot = new InternalAggregateRoot(Guid.NewGuid());

            aggregateRoot.ApplyEvent(domainEvent);

            var privateSut = new InternalAsyncDomainRepository(eventHandlerResolver);

            privateSut.ApplyChangesAsync(aggregateRoot).Wait();

            domainEventHandler1.Received().ExecuteAsync(domainEvent);
            domainEventHandler2.Received().ExecuteAsync(domainEvent);
        }