/// <summary> /// Initializes a new instance of the <see cref="CompositeUnitOfWorkDomainRepository{TUnitOfWork, TAggregateRoot1, TAggregateRoot2}"/> class. /// </summary> /// <param name="eventHandlerResolver">Event handler resolver for finding domain event handlers.</param> /// <param name="unitOfWorkEventHandlerResolver">Event handler resolver for finding unit-of-work domain event handlers.</param> /// <param name="unitOfWork">The Unit of Work context instance.</param> protected CompositeUnitOfWorkDomainRepository(IDomainEventHandlerResolver eventHandlerResolver, IUnitOfWorkDomainEventHandlerResolver unitOfWorkEventHandlerResolver, TUnitOfWork unitOfWork) { if (unitOfWork == null) { throw new ArgumentNullException("unitOfWork"); } this.unitOfWork = unitOfWork; immediateEventBroker = new DomainEventBroker(eventHandlerResolver); unitOfWorkDomainEventBroker = new UnitOfWorkDomainEventBroker <TUnitOfWork>(unitOfWorkEventHandlerResolver, unitOfWork); }
public void Setup() { domainEventHandler1 = Substitute.For<IDomainEventHandler<TestDomainEvent>>(); domainEventHandler2 = Substitute.For<IDomainEventHandler<TestDomainEvent>>(); domainEventHandler3 = Substitute.For<IDomainEventHandler<AnotherTestDomainEvent>>(); asyncDomainEventHandler1 = Substitute.For<IAsyncDomainEventHandler<TestDomainEvent>>(); asyncDomainEventHandler2 = Substitute.For<IAsyncDomainEventHandler<TestDomainEvent>>(); asyncDomainEventHandler3 = Substitute.For<IAsyncDomainEventHandler<AnotherTestDomainEvent>>(); resolver = Substitute.For<IDomainEventHandlerResolver>(); resolver.ResolveEventHandlers<IDomainEventHandler<TestDomainEvent>>().Returns(new[] { domainEventHandler1, domainEventHandler2 }); resolver.ResolveEventHandlers<IDomainEventHandler<TestDomainEvent>>().Returns(new[] { domainEventHandler1, domainEventHandler2 }); resolver.ResolveEventHandlers<IDomainEventHandler<AnotherTestDomainEvent>>().Returns(new[] { domainEventHandler3 }); resolver.ResolveEventHandlers<IAsyncDomainEventHandler<TestDomainEvent>>().Returns(new[] { asyncDomainEventHandler1, asyncDomainEventHandler2 }); resolver.ResolveEventHandlers<IAsyncDomainEventHandler<TestDomainEvent>>().Returns(new[] { asyncDomainEventHandler1, asyncDomainEventHandler2 }); resolver.ResolveEventHandlers<IAsyncDomainEventHandler<AnotherTestDomainEvent>>().Returns(new[] { asyncDomainEventHandler3 }); sut = new DomainEventBroker(resolver); }
public void Setup() { domainEventHandler1 = Substitute.For <IDomainEventHandler <TestDomainEvent> >(); domainEventHandler2 = Substitute.For <IDomainEventHandler <TestDomainEvent> >(); domainEventHandler3 = Substitute.For <IDomainEventHandler <AnotherTestDomainEvent> >(); asyncDomainEventHandler1 = Substitute.For <IAsyncDomainEventHandler <TestDomainEvent> >(); asyncDomainEventHandler2 = Substitute.For <IAsyncDomainEventHandler <TestDomainEvent> >(); asyncDomainEventHandler3 = Substitute.For <IAsyncDomainEventHandler <AnotherTestDomainEvent> >(); resolver = Substitute.For <IDomainEventHandlerResolver>(); resolver.ResolveEventHandlers <IDomainEventHandler <TestDomainEvent> >().Returns(new[] { domainEventHandler1, domainEventHandler2 }); resolver.ResolveEventHandlers <IDomainEventHandler <TestDomainEvent> >().Returns(new[] { domainEventHandler1, domainEventHandler2 }); resolver.ResolveEventHandlers <IDomainEventHandler <AnotherTestDomainEvent> >().Returns(new[] { domainEventHandler3 }); resolver.ResolveEventHandlers <IAsyncDomainEventHandler <TestDomainEvent> >().Returns(new[] { asyncDomainEventHandler1, asyncDomainEventHandler2 }); resolver.ResolveEventHandlers <IAsyncDomainEventHandler <TestDomainEvent> >().Returns(new[] { asyncDomainEventHandler1, asyncDomainEventHandler2 }); resolver.ResolveEventHandlers <IAsyncDomainEventHandler <AnotherTestDomainEvent> >().Returns(new[] { asyncDomainEventHandler3 }); sut = new DomainEventBroker(resolver); }
public SourcererFactory Abracadabra() { var domainEventBroker = new DomainEventBroker(DependencyResolver); return new SourcererFactory(FactStore, domainEventBroker, Clock); }