public void Composite_Specification() { var spec = new IntegerComposite(); var composite = spec.GetComposite(); Assert.That(composite, Is.TypeOf<Conjunction<int>>()); Assert.That(composite, Has.Property("Left").TypeOf<Disjunction<int>>()); Assert.That(composite, Has.Property("Left").With.Property("Left").TypeOf<IntegerGreaterThanZero>()); Assert.That(composite, Has.Property("Left").With.Property("Right").TypeOf<IntegerEqualToZero>()); Assert.That(composite, Has.Property("Right").TypeOf<Negation<int>>()); Assert.That(composite, Has.Property("Right").With.Property("Inner").TypeOf<IntegerLessThanZero>()); }
public void Composite_Criteria() { var spec = new IntegerComposite(); var composite = Specify<int> .Where<IntegerGreaterThanZero>() .Or<IntegerEqualToZero>() .AndNot<IntegerLessThanZero>(); var criteria = spec.Criteria; Assert.That(composite.Criteria.ToString(), Is.EqualTo(criteria.ToString())); ExpressionWriter.Write(criteria); }