public void PartitionKey_returns_SourceId_as_string() { FakeDomainEvent sut = _fixture.Create <FakeDomainEvent>(); string actual = sut.PartitionKey; actual.Should().Be(sut.SourceId.ToString()); }
public void Dispatch_EventHandler1ThrowsException_ExecutionStopsAndRethrow( [Frozen] Mock<IContainer> container, Mock<IDomainEventHandler<FakeDomainEvent>> eventHandler1, Mock<IDomainEventHandler<FakeDomainEvent>> eventHandler2, FakeDomainEvent domainEvent, DomainEventDispatcher dispatcher) { // Arrange var genericTypeName = typeof (IDomainEventHandler<FakeDomainEvent>).FullName; var eventHandlers = new List<IDomainEventHandler<FakeDomainEvent>> { eventHandler1.Object, eventHandler2.Object }; container.Setup(c => c.GetAllInstances(It.Is<Type>(t => t.FullName == genericTypeName))) .Returns(eventHandlers); eventHandler1.Setup(h => h.Handle(It.IsAny<FakeDomainEvent>())).Throws<Exception>(); // Act Assert.Throws<Exception>(() => dispatcher.Dispatch(domainEvent)); // Assert eventHandler1.Verify(t => t.Handle(domainEvent), Times.Once); eventHandler2.Verify(t => t.Handle(domainEvent), Times.Never); }
public void Dispatch_BuildGenericType_ExecutesAllHandlersPassingTheEvent( [Frozen] Mock<IContainer> container, Mock<IDomainEventHandler<FakeDomainEvent>> eventHandler1, Mock<IDomainEventHandler<FakeDomainEvent>> eventHandler2, FakeDomainEvent domainEvent, DomainEventDispatcher dispatcher) { // Arrange var genericTypeName = typeof (IDomainEventHandler<FakeDomainEvent>).FullName; var eventHandlers = new List<IDomainEventHandler<FakeDomainEvent>> { eventHandler1.Object, eventHandler2.Object }; container.Setup(c => c.GetAllInstances(It.Is<Type>(t => t.FullName == genericTypeName))) .Returns(eventHandlers); // Act dispatcher.Dispatch(domainEvent); // Assert eventHandler1.Verify(t => t.Handle(domainEvent), Times.Once); eventHandler2.Verify(t => t.Handle(domainEvent), Times.Once); }
public void Raise_sets_RaisedAt_correctly() { var versionedEntity = Mock.Of <IVersionedEntity>(); var sut = new FakeDomainEvent(); sut.Raise(versionedEntity); sut.RaisedAt.Should().BeCloseTo(DateTimeOffset.Now); }
public void FromEnvelope_sets_MessageId_correctly() { FakeDomainEvent domainEvent = _fixture.Create <FakeDomainEvent>(); var envelope = new Envelope(domainEvent); var actual = PersistentEvent.FromEnvelope( envelope, new JsonMessageSerializer()); actual.MessageId.Should().Be(envelope.MessageId); }
public void FromEnvelope_sets_EventType_correctly() { FakeDomainEvent domainEvent = _fixture.Create <FakeDomainEvent>(); var envelope = new Envelope(domainEvent); var actual = PersistentEvent.FromEnvelope( envelope, new JsonMessageSerializer()); actual.EventType.Should().Be(typeof(FakeDomainEvent).FullName); }
public void FromEnvelope_sets_CorrelationId_correctly() { FakeDomainEvent domainEvent = _fixture.Create <FakeDomainEvent>(); var correlationId = Guid.NewGuid(); var envelope = new Envelope(Guid.NewGuid(), domainEvent, correlationId: correlationId); var actual = PersistentEvent.FromEnvelope( envelope, new JsonMessageSerializer()); actual.CorrelationId.Should().Be(correlationId); }
public void DomainEvent_by_default_should_generate_its_own_metadata() { //arrange var @event = new FakeDomainEvent(); //act && assert @event.Metadata.Should().NotBeNull(); @event.Id.Should().NotBeEmpty(); @event.OccurredOn.Should().BeSameDateAs(DateTime.UtcNow.Date); }
public void FromEnvelope_sets_Contributor_correctly() { FakeDomainEvent domainEvent = _fixture.Create <FakeDomainEvent>(); string contributor = _fixture.Create <string>(); var envelope = new Envelope(Guid.NewGuid(), domainEvent, contributor: contributor); var actual = PersistentEvent.FromEnvelope( envelope, new JsonMessageSerializer()); actual.Contributor.Should().Be(contributor); }
public void Raise_sets_RaisedAt_correctly() { IVersionedEntity versionedEntity = Mock.Of <IVersionedEntity>(); var sut = new FakeDomainEvent(); sut.Raise(versionedEntity); sut.RaisedAt.Kind.Should().Be(DateTimeKind.Utc); sut.RaisedAt.Should().BeCloseTo(DateTime.UtcNow); }
private static UntypedEventEnvelope CreateUntypedEventEnvelope() { var domainEvent = new FakeDomainEvent(); var correlationId = Guid.NewGuid().ToString(); var causationId = Guid.NewGuid().ToString(); var eventMetadata = new UntypedEventEnvelope.EventMetadata(correlationId, causationId); var envelopedEvent = new UntypedEventEnvelope(domainEvent.EventId, eventMetadata, domainEvent); return(envelopedEvent); }
public void Raise_sets_version_correctly() { int version = _fixture.Create <int>(); IVersionedEntity versionedEntity = Mock.Of <IVersionedEntity>(x => x.Version == version); var sut = new FakeDomainEvent(); sut.Raise(versionedEntity); sut.Version.Should().Be(version + 1); }
public void Raise_sets_SourceId_correctly() { var sourceId = Guid.NewGuid(); IVersionedEntity versionedEntity = Mock.Of <IVersionedEntity>(x => x.Id == sourceId); var sut = new FakeDomainEvent(); sut.Raise(versionedEntity); sut.SourceId.Should().Be(sourceId); }
public void DomainEvent_should_be_able_to_adapt_provided_arguments_as_metadata() { //arrange var id = Guid.NewGuid(); var date = DateTime.UtcNow; var @event = new FakeDomainEvent(DomainEventMetadata.For(id, date)); //act && assert @event.Metadata.Should().NotBeNull(); @event.Id.Should().Be(id); @event.OccurredOn.Should().Be(date); }
public void FromEnvelope_sets_EventJson_correctly() { var serializer = new JsonMessageSerializer(); FakeDomainEvent domainEvent = _fixture.Create <FakeDomainEvent>(); var envelope = new Envelope(domainEvent); var actual = PersistentEvent.FromEnvelope(envelope, serializer); object deserialized = serializer.Deserialize(actual.EventJson); deserialized.Should().BeOfType <FakeDomainEvent>(); deserialized.ShouldBeEquivalentTo(domainEvent); }
public void DomainEvent_implements_IPartitioned() { var sut = new FakeDomainEvent(); sut.Should().BeAssignableTo <IPartitioned>(); }
public void Dispatch_NoHandlersRegistered_DoNothing( [Frozen] Mock<IContainer> container, FakeDomainEvent domainEvent, DomainEventDispatcher dispatcher) { // Arrange var genericTypeName = typeof (IDomainEventHandler<FakeDomainEvent>).FullName; container.Setup(c => c.GetAllInstances(It.Is<Type>(t => t.FullName == genericTypeName))) .Returns(new List<IDomainEventHandler<FakeDomainEvent>>()); // Act dispatcher.Dispatch(domainEvent); }
public void SetUp() { _wasHandled = false; _event = new FakeDomainEvent(); }