public void AreRelationshipsValid_does_not_consider_relationships_which_permit_duplicates_for_validation([HasIdentity] Ticket ticket,
                                                                                                                 [HasIdentity] DirectionalRelationship rel1,
                                                                                                                 [Frozen] IValidatesTheoreticalTicketRelationships wrapped,
                                                                                                                 MultipleSecondaryRelationshipPreventingValidationDecorator sut)
        {
            var identity = ticket.GetIdentity();

            rel1.Behaviour.ProhibitMultipleSecondaryRelationships = false;

            var relationships = new[] {
                new TheoreticalRelationship {
                    SecondaryTicket = identity,
                    Relationship    = rel1,
                    Type            = TheoreticalRelationshipType.Existing,
                },
                new TheoreticalRelationship {
                    SecondaryTicket = identity,
                    Relationship    = rel1,
                    Type            = TheoreticalRelationshipType.Added,
                },
            };

            Mock.Get(wrapped)
            .Setup(x => x.AreRelationshipsValid(It.IsAny <IIdentity <Ticket> >(), It.IsAny <IEnumerable <TheoreticalRelationship> >()))
            .Returns(true);

            var result = sut.AreRelationshipsValid(identity, relationships);

            Assert.That(result, Is.True);
        }
        public void AreRelationshipsValid_returns_result_from_wrapped_if_relationships_are_valid([HasIdentity] Ticket ticket,
                                                                                                 [Frozen] IValidatesTheoreticalTicketRelationships wrapped,
                                                                                                 MultipleSecondaryRelationshipPreventingValidationDecorator sut)
        {
            var identity = ticket.GetIdentity();

            var relationships = Enumerable.Empty <TheoreticalRelationship>();

            Mock.Get(wrapped)
            .Setup(x => x.AreRelationshipsValid(It.IsAny <IIdentity <Ticket> >(), It.IsAny <IEnumerable <TheoreticalRelationship> >()))
            .Returns(false);

            var result = sut.AreRelationshipsValid(identity, relationships);

            Assert.That(result, Is.False);
        }