public PossiblyCircularHierarchicalTicketRelationshipProviderAdapter(IGetsHierarchicalTicketRelationships hierarchicalRelationshipProvider) { this.hierarchicalRelationshipProvider = hierarchicalRelationshipProvider ?? throw new ArgumentNullException(nameof(hierarchicalRelationshipProvider)); }
public void GetRelevantHierarchicalRelationships_returns_result_from_provider([Frozen] IGetsHierarchicalTicketRelationships relationshipProvider, PossiblyCircularHierarchicalTicketRelationshipProviderAdapter sut, IEnumerable <HierarchicalTicketRelationship> expected) { Mock.Get(relationshipProvider) .Setup(x => x.GetRelationships(It.IsAny <IIdentity <Ticket>[]>())) .Returns(expected); var result = sut.GetRelevantHierarchicalRelationships(new TheoreticalRelationship[0]); Assert.That(result, Is.SameAs(expected)); }
public void GetRelevantHierarchicalRelationships_does_not_include_a_relationship_which_permits_circles(DirectionalRelationship relationship, Identity <long, Ticket> ticketId, [Frozen] IGetsHierarchicalTicketRelationships relationshipProvider, PossiblyCircularHierarchicalTicketRelationshipProviderAdapter sut) { var theoreticalRelationship = new TheoreticalRelationship { Relationship = relationship, PrimaryTicket = ticketId }; relationship.Behaviour.ProhibitCircularRelationship = false; sut.GetRelevantHierarchicalRelationships(new[] { theoreticalRelationship }); Mock.Get(relationshipProvider) .Verify(x => x.GetRelationships(It.Is <IIdentity <Ticket>[]>(p => p.Length == 0)), Times.Once); }
public void GetRelevantHierarchicalRelationships_can_get_a_relationship_with_a_secondary_ticket_identity(DirectionalRelationship relationship, Identity <long, Ticket> ticketId, [Frozen] IGetsHierarchicalTicketRelationships relationshipProvider, PossiblyCircularHierarchicalTicketRelationshipProviderAdapter sut) { var theoreticalRelationship = new TheoreticalRelationship { Relationship = relationship, SecondaryTicket = ticketId }; relationship.Behaviour.ProhibitCircularRelationship = true; sut.GetRelevantHierarchicalRelationships(new[] { theoreticalRelationship }); Mock.Get(relationshipProvider) .Verify(x => x.GetRelationships(ticketId), Times.Once); }