Пример #1
0
        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);
        }
Пример #2
0
        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));
        }