public void Setup() { unitOfWorkDomainEventHandler1 = Substitute.For <IUnitOfWorkDomainEventHandler <TestDomainEvent, TestUnitOfWork> >(); unitOfWorkDomainEventHandler2 = Substitute.For <IUnitOfWorkDomainEventHandler <TestDomainEvent, TestUnitOfWork> >(); unitOfWorkDomainEventHandlers = new List <IUnitOfWorkDomainEventHandler <TestDomainEvent, TestUnitOfWork> > { unitOfWorkDomainEventHandler1, unitOfWorkDomainEventHandler2 }; domainEventHandler3 = Substitute.For <IDomainEventHandler <TestDomainEvent> >(); domainEventHandler4 = Substitute.For <IDomainEventHandler <TestDomainEvent> >(); domainEventHandlers = new List <IDomainEventHandler <TestDomainEvent> > { domainEventHandler3, domainEventHandler4 }; eventHandlerResolver = Substitute.For <IDomainEventHandlerResolver>(); unitOfWorkEventHandlerResolver = Substitute.For <IUnitOfWorkDomainEventHandlerResolver>(); unitOfWork = Substitute.For <TestUnitOfWork>(); domainEvent1 = new TestDomainEvent(Guid.NewGuid()); domainEvent2 = new TestDomainEvent(Guid.NewGuid()); unitOfWorkEventHandlerResolver.ResolveEventHandlers <IUnitOfWorkDomainEventHandler <TestDomainEvent, TestUnitOfWork> >().Returns(unitOfWorkDomainEventHandlers); unitOfWorkEventHandlerResolver.ResolveEventHandlers <IUnitOfWorkDomainEventHandler <TestDomainEvent, TestUnitOfWork> >().Returns(unitOfWorkDomainEventHandlers); eventHandlerResolver.ResolveEventHandlers <IDomainEventHandler <TestDomainEvent> >().Returns(domainEventHandlers); eventHandlerResolver.ResolveEventHandlers <IDomainEventHandler <TestDomainEvent> >().Returns(domainEventHandlers); sut = new TestCompositeUnitOfWorkDomainRepository(eventHandlerResolver, unitOfWorkEventHandlerResolver, unitOfWork); }
public void Setup() { unitOfWorkDomainEventHandler1 = Substitute.For<IUnitOfWorkDomainEventHandler<TestDomainEvent, TestUnitOfWork>>(); unitOfWorkDomainEventHandler2 = Substitute.For<IUnitOfWorkDomainEventHandler<TestDomainEvent, TestUnitOfWork>>(); unitOfWorkDomainEventHandlers = new List<IUnitOfWorkDomainEventHandler<TestDomainEvent, TestUnitOfWork>> { unitOfWorkDomainEventHandler1, unitOfWorkDomainEventHandler2 }; domainEventHandler3 = Substitute.For<IDomainEventHandler<TestDomainEvent>>(); domainEventHandler4 = Substitute.For<IDomainEventHandler<TestDomainEvent>>(); domainEventHandlers = new List<IDomainEventHandler<TestDomainEvent>> { domainEventHandler3, domainEventHandler4 }; eventHandlerResolver = Substitute.For<IDomainEventHandlerResolver>(); unitOfWorkEventHandlerResolver = Substitute.For<IUnitOfWorkDomainEventHandlerResolver>(); unitOfWork = Substitute.For<TestUnitOfWork>(); domainEvent = new TestDomainEvent(Guid.NewGuid()); unitOfWorkEventHandlerResolver.ResolveEventHandlers<IUnitOfWorkDomainEventHandler<TestDomainEvent, TestUnitOfWork>>().Returns(unitOfWorkDomainEventHandlers); eventHandlerResolver.ResolveEventHandlers<IDomainEventHandler<TestDomainEvent>>().Returns(domainEventHandlers); sut = new TestUnitOfWorkDomainRepository(eventHandlerResolver, unitOfWorkEventHandlerResolver, unitOfWork); }
/// <summary> /// Publishes the given domain event to all registered event handlers for the event type. /// </summary> /// <typeparam name="TDomainEvent">The type of the domain event.</typeparam> /// <param name="domainEvent">The domain event instance to execute.</param> protected override void Publish <TDomainEvent>(TDomainEvent domainEvent) { IEnumerable <IDomainEventHandler <TDomainEvent> > eventHandlers = eventHandlerResolver.ResolveEventHandlers <IDomainEventHandler <TDomainEvent> >(); foreach (IDomainEventHandler <TDomainEvent> eventHandler in eventHandlers) { eventHandler.Execute(domainEvent); } IEnumerable <IAsyncDomainEventHandler <TDomainEvent> > asyncEventHandlers = eventHandlerResolver.ResolveEventHandlers <IAsyncDomainEventHandler <TDomainEvent> >(); foreach (IAsyncDomainEventHandler <TDomainEvent> eventHandler in asyncEventHandlers) { eventHandler.ExecuteAsync(domainEvent).Wait(); } }
public void Setup() { domainEventHandler1 = Substitute.For<IAsyncDomainEventHandler<TestDomainEvent>>(); domainEventHandler2 = Substitute.For<IAsyncDomainEventHandler<TestDomainEvent>>(); IEnumerable<IAsyncDomainEventHandler<TestDomainEvent>> eventHandlers = new List<IAsyncDomainEventHandler<TestDomainEvent>> { domainEventHandler1, domainEventHandler2 }; domainEvent = new TestDomainEvent(Guid.NewGuid()); eventHandlerResolver = Substitute.For<IDomainEventHandlerResolver>(); eventHandlerResolver.ResolveEventHandlers<IAsyncDomainEventHandler<TestDomainEvent>>().Returns(eventHandlers); sut = new TestAsyncDomainRepository(eventHandlerResolver); }
public void Setup() { domainEventHandler1 = Substitute.For <IDomainEventHandler <TestDomainEvent> >(); domainEventHandler2 = Substitute.For <IDomainEventHandler <TestDomainEvent> >(); IEnumerable <IDomainEventHandler <TestDomainEvent> > eventHandlers = new List <IDomainEventHandler <TestDomainEvent> > { domainEventHandler1, domainEventHandler2 }; domainEvent = new TestDomainEvent(Guid.NewGuid()); eventHandlerResolver = Substitute.For <IDomainEventHandlerResolver>(); eventHandlerResolver.ResolveEventHandlers <IDomainEventHandler <TestDomainEvent> >().Returns(eventHandlers); sut = new TestDomainRepository(eventHandlerResolver); }
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); }