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); }
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); }
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); }
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); }
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); }