Exemple #1
0
        public void CanApplyAnEventWithNoTransform()
        {
            var existing = new ExampleProjection();
            var @event   = new ExampleEvent
            {
                Id          = Guid.NewGuid(),
                AppendValue = "AppendingValue"
            };
            var buildUp = BuildUp.Initialize(_ =>
            {
                _.RegisterApply(_apply);
            });
            var projectedValue = buildUp.Project(existing, @event);

            Assert.Equal(projectedValue.Id, @event.Id);
            Assert.Equal(projectedValue.SomeValue, @event.AppendValue);
        }
Exemple #2
0
        public void CanApplyMultipleEvents()
        {
            var existing = new ExampleProjection();
            var @event   = new ExampleEvent
            {
                Id          = Guid.NewGuid(),
                AppendValue = "AppendingValue"
            };
            var secondEvent = new ExampleEvent
            {
                Id          = @event.Id,
                AppendValue = "MoreValuesToAdd"
            };
            var buildUp = BuildUp.Initialize(_ =>
            {
                _.RegisterApply(_apply);
            });
            var projectedValue = buildUp.Project(existing, @event, secondEvent);

            Assert.Equal(projectedValue.Id, @event.Id);
            Assert.Equal(projectedValue.SomeValue, $"{@event.AppendValue}{secondEvent.AppendValue}");
        }
Exemple #3
0
        public void AutomaticallyPerformsTransformIfPresent()
        {
            var existing = new ExampleProjection();
            var @event   = new ExampleEvent
            {
                Id          = Guid.NewGuid(),
                AppendValue = "AppendingValue"
            };
            var secondEvent = new ObsoleteEvent()
            {
                Id       = @event.Id,
                NewValue = "MoreValuesToAdd"
            };
            var buildUp = BuildUp.Initialize(_ =>
            {
                _.RegisterApply(_apply);
                _.RegisterEventTransform(_transform);
            });
            var projectedValue = buildUp.Project(existing, @event, secondEvent);

            Assert.Equal(projectedValue.Id, @event.Id);
            Assert.Equal(projectedValue.SomeValue, $"{@event.AppendValue}{secondEvent.NewValue}");
        }
Exemple #4
0
        public void ChainsTransformsToFindAWayToApply()
        {
            var existing = new ExampleProjection();
            var @event   = new ExampleEvent
            {
                Id          = Guid.NewGuid(),
                AppendValue = "AppendingValue"
            };
            var secondEvent = new ChainedEvent()
            {
                Id       = @event.Id,
                OldValue = "MoreValuesToAdd"
            };
            var buildUp = BuildUp.Initialize(_ =>
            {
                _.RegisterApply(_apply);
                _.RegisterEventTransform(_transform);
                _.RegisterEventTransform(_chainedTransform);
            });
            var projectedValue = buildUp.Project(existing, @event, secondEvent);

            Assert.Equal(projectedValue.Id, @event.Id);
            Assert.Equal(projectedValue.SomeValue, $"{@event.AppendValue}{secondEvent.OldValue}");
        }