Example #1
0
            public async Task CreatesEndMessageWithContext(ComponentStatus changeStatus, ComponentStatus existingStatus)
            {
                var child = new TestComponent("child");

                child.Status = changeStatus;
                var root = new PrimarySecondaryComponent("hi", "", new[] { child });

                var affectedComponent = root.GetByNames <IComponent>(root.Name, child.Name);
                var change            = new MessageChangeEvent(
                    DefaultTimestamp + TimeSpan.FromDays(1),
                    affectedComponent.Path,
                    changeStatus,
                    MessageType.End);

                var context = new ExistingStartMessageContext(
                    DefaultTimestamp,
                    root,
                    existingStatus);

                var result = await Processor.ProcessAsync(change, EventEntity, root, context);

                Assert.Null(result);

                Factory
                .Verify(
                    x => x.CreateMessageAsync(
                        EventEntity,
                        change.Timestamp,
                        MessageType.End,
                        context.AffectedComponent,
                        context.AffectedComponentStatus),
                    Times.Once());
            }
Example #2
0
            public async Task CreatesStartMessageFromNullContextForHiddenComponent(ComponentStatus status)
            {
                var child = new TestComponent("child");
                var root  = new PrimarySecondaryComponent("hi", "", new[] { child });

                var change = new MessageChangeEvent(
                    DefaultTimestamp,
                    root.GetByNames <IComponent>(root.Name, child.Name).Path,
                    status,
                    MessageType.Start);

                var result = await Processor.ProcessAsync(change, EventEntity, root, null);

                Assert.Equal(change.Timestamp, result.Timestamp);
                Assert.Equal(root, result.AffectedComponent);
                Assert.Equal(root.Status, result.AffectedComponentStatus);

                Factory
                .Verify(
                    x => x.CreateMessageAsync(
                        EventEntity,
                        DefaultTimestamp,
                        MessageType.Start,
                        root),
                    Times.Once());
            }