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()); }
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()); }