private void AssertPath <TComponent>(TComponent root, TComponent subComponent, params string[] componentNames) where TComponent : class, IReadOnlyComponent, IRootComponent <TComponent> { AssertUtility.AssertComponent(subComponent, root.GetByNames(componentNames)); var expectedPath = ComponentUtility.GetPath(componentNames); Assert.Equal(expectedPath, subComponent.Path); AssertUtility.AssertComponent(subComponent, root.GetByPath(expectedPath)); }
public void SetsFieldsAsExpected() { var lastBuilt = new DateTime(2018, 11, 13); var lastUpdated = new DateTime(2018, 11, 14); var rootComponentName = "name"; var rootComponentDescription = "description"; var rootComponentStatus = (ComponentStatus)99; var rootComponent = new ReadOnlyComponent( rootComponentName, rootComponentDescription, rootComponentStatus, Enumerable.Empty <IReadOnlyComponent>()); var eventPath = "path"; var eventStartTime = new DateTime(2018, 11, 15); var eventEndTime = new DateTime(2018, 11, 16); var messageTime = new DateTime(2018, 11, 17); var messageContents = "contents"; var recentEvents = new[] { new Event( eventPath, eventStartTime, eventEndTime, new[] { new Message( messageTime, messageContents) }) }; var status = new ServiceStatus(lastBuilt, lastUpdated, rootComponent, recentEvents); // Assert ServiceStatus Assert.Equal(lastBuilt, status.LastBuilt); Assert.Equal(lastUpdated, status.LastUpdated); Assert.Equal(rootComponent, status.ServiceRootComponent); AssertUtility.AssertComponent(rootComponent, status.ServiceRootComponent); Assert.Equal(recentEvents, status.Events); AssertUtility.AssertAll(recentEvents, status.Events, AssertUtility.AssertEvent); // Assert ReadOnlyComponent var actualRootComponent = status.ServiceRootComponent; Assert.Equal(rootComponentName, actualRootComponent.Name); Assert.Equal(rootComponentDescription, actualRootComponent.Description); Assert.Equal(rootComponentStatus, actualRootComponent.Status); // Assert Event var actualEvent = status.Events.Single(); Assert.Equal(eventPath, actualEvent.AffectedComponentPath); Assert.Equal(eventStartTime, actualEvent.StartTime); Assert.Equal(eventEndTime, actualEvent.EndTime); // Assert Message var actualMessage = actualEvent.Messages.Single(); Assert.Equal(messageTime, actualMessage.Time); Assert.Equal(messageContents, actualMessage.Contents); }