示例#1
0
        ISpecificationExpression <Ticket> GetFromPredicateAndValue(Criterion criterion)
        {
            var predicateAndValue = criterion.Test as PredicateAndValue;
            var labelName         = valueResolver.Resolve <string>(predicateAndValue.Value);
            var spec = new HasLabel(labelName);

            if (predicateAndValue.PredicateText == PredicateName.NotEquals)
            {
                return(spec.Not());
            }

            return(spec);
        }
示例#2
0
        public void Matches_returns_false_for_a_ticket_which_has_no_labels(Ticket ticket)
        {
            // Arrange
            var labeNameOne = "one";
            var labeNameTwo = "two";

            ticket.Labels.Clear();
            var sut = new HasLabel(labeNameOne, labeNameTwo);

            // Act
            var result = sut.Matches(ticket);

            // Assert
            Assert.That(result, Is.False);
        }
示例#3
0
        public void Matches_returns_true_for_a_ticket_which_has_one_of_the_named_labels(Ticket ticket)
        {
            // Arrange
            var labeNameOne = "one";
            var labeNameTwo = "two";

            ticket.Labels.Add(new Label {
                Name = labeNameTwo
            });
            var sut = new HasLabel(labeNameOne, labeNameTwo);

            // Act
            var result = sut.Matches(ticket);

            // Assert
            Assert.That(result, Is.True);
        }
示例#4
0
        ISpecificationExpression <Ticket> GetFromPredicateFunction(Criterion criterion)
        {
            var predicateFunction = criterion?.Test as PredicateFunction;

            if (predicateFunction == null)
            {
                return(null);
            }
            var labelNames = valueResolver.ResolveAll <string>(predicateFunction.Parameters);
            var spec       = new HasLabel(labelNames);

            if (predicateFunction.Inverted)
            {
                return(spec.Not());
            }

            return(spec);
        }
示例#5
0
        public void Matches_returns_true_for_a_ticket_which_has_both_named_labels_and_more(Ticket ticket,
                                                                                           string anotherLabelName)
        {
            // Arrange
            var labeNameOne = "one";
            var labeNameTwo = "two";

            ticket.Labels.Add(new Label {
                Name = labeNameOne
            });
            ticket.Labels.Add(new Label {
                Name = labeNameTwo
            });
            ticket.Labels.Add(new Label {
                Name = anotherLabelName
            });
            var sut = new HasLabel(labeNameOne, labeNameTwo);

            // Act
            var result = sut.Matches(ticket);

            // Assert
            Assert.That(result, Is.True);
        }