public void AreRelationshipsValid_gets_hierarchical_relationships([Frozen] IGetsHierarchicalTicketRelationshipsWhichCouldCreateACircularRelationship hierarchicalRelationshipProvider, CircularRelationshipValidator sut, IEnumerable <TheoreticalRelationship> relationships, IIdentity <Ticket> editedTicket) { sut.AreRelationshipsValid(editedTicket, relationships); Mock.Get(hierarchicalRelationshipProvider) .Verify(x => x.GetRelevantHierarchicalRelationships(relationships), Times.Once); }
public CircularRelationshipValidator(IGetsHierarchicalTicketRelationshipsWhichCouldCreateACircularRelationship hierarchicalRelationshipProvider, IDetectsCircularRelationship circularRelationshipDetector, IGetsTraversibleRelationships traversibleRelationshipProvider, ILog logger) { this.hierarchicalRelationshipProvider = hierarchicalRelationshipProvider ?? throw new ArgumentNullException(nameof(hierarchicalRelationshipProvider)); this.circularRelationshipDetector = circularRelationshipDetector ?? throw new ArgumentNullException(nameof(circularRelationshipDetector)); this.traversibleRelationshipProvider = traversibleRelationshipProvider ?? throw new ArgumentNullException(nameof(traversibleRelationshipProvider)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public void AreRelationshipsValid_returns_true_if_no_relationship_is_circular([Frozen] IGetsHierarchicalTicketRelationshipsWhichCouldCreateACircularRelationship hierarchicalRelationshipProvider, [Frozen] IGetsTraversibleRelationships traversibleRelationshipProvider, [Frozen] IDetectsCircularRelationship detector, CircularRelationshipValidator sut, IEnumerable <TheoreticalRelationship> relationships, IIdentity <Ticket> editedTicket, IEnumerable <HierarchicalTicketRelationship> hierarchicalRelationships, TraversibleRelationship traversibleRelationship) { var allRelationships = new[] { traversibleRelationship }; Mock.Get(hierarchicalRelationshipProvider) .Setup(x => x.GetRelevantHierarchicalRelationships(relationships)) .Returns(hierarchicalRelationships); Mock.Get(traversibleRelationshipProvider) .Setup(x => x.GetTraversibleRelationships(relationships, hierarchicalRelationships)) .Returns(allRelationships); Mock.Get(detector) .Setup(x => x.IsRelationshipCircular(traversibleRelationship.Type, allRelationships)) .Returns(false); var result = sut.AreRelationshipsValid(editedTicket, relationships); Assert.That(result, Is.True); }
public void AreRelationshipsValid_passes_hierarchical_relationships_to_traversible_provider([Frozen] IGetsHierarchicalTicketRelationshipsWhichCouldCreateACircularRelationship hierarchicalRelationshipProvider, [Frozen] IGetsTraversibleRelationships traversibleRelationshipProvider, CircularRelationshipValidator sut, IEnumerable <TheoreticalRelationship> relationships, IIdentity <Ticket> editedTicket, IEnumerable <HierarchicalTicketRelationship> hierarchicalRelationships) { Mock.Get(hierarchicalRelationshipProvider) .Setup(x => x.GetRelevantHierarchicalRelationships(relationships)) .Returns(hierarchicalRelationships); sut.AreRelationshipsValid(editedTicket, relationships); Mock.Get(traversibleRelationshipProvider) .Verify(x => x.GetTraversibleRelationships(relationships, hierarchicalRelationships), Times.Once); }