public void WhenICreateAnEventItIsCreated() { var expectedEventId = Guid.NewGuid(); var expectedContextId = Guid.NewGuid(); var expectedEventData = Guid.NewGuid().ToString(); var expectedEventType = Substitute.For <IEventType>(); var expectedEventDateTime = DateTime.Now; var expectedEffectiveDateTime = DateTime.Now.AddDays(-2); var eventData = Substitute.For <IEventData>(); _guidProvider.Create().Returns(expectedEventId); _dateTimeProvider.GetUtc().Returns(expectedEventDateTime); _eventDataSerializationService.Serialize(eventData).Returns(expectedEventData); _eventTypeService.Get <IEventData>().Returns(expectedEventType); var result = _target.Create(expectedContextId, eventData, expectedEffectiveDateTime); Assert.Equal(expectedEventId, result.EventId); Assert.Equal(expectedContextId, result.ContextId); Assert.Equal(expectedEventDateTime, result.CreatedDateTime); Assert.Equal(expectedEffectiveDateTime, result.EffectiveDateTime); Assert.Same(expectedEventType, result.EventType); Assert.Equal(expectedEventData, result.EventData); Assert.False(result.Undone); }
public IEvent Create <TEventData>(Guid contextId, TEventData eventData, DateTime?effectiveDateTime = null) where TEventData : IEventData { var eventId = _guidProvider.Create(); var serializedEventData = _eventDataSerializationService.Serialize(eventData); var eventType = _eventTypeService.Get <TEventData>(); var createdDateTime = _dateTimeProvider.GetUtc(); var eventEffectiveDateTime = effectiveDateTime ?? createdDateTime; return(new Event(eventId, contextId, eventType, serializedEventData, createdDateTime, eventEffectiveDateTime)); }