Ejemplo n.º 1
0
 public static CrossFieldClause Matcher(this CrossFieldClause self)
 {
     return(Match.Create <CrossFieldClause>(cfc =>
                                            ReferenceEquals(cfc.LHS.Field, self.LHS.Field) &&
                                            cfc.LHS.Function == self.LHS.Function &&
                                            cfc.Operator == self.Operator &&
                                            ReferenceEquals(cfc.RHS.Field, self.RHS.Field) &&
                                            cfc.RHS.Function == self.RHS.Function
                                            ));
 }
Ejemplo n.º 2
0
        public void CrossFieldClauseNotNegated()
        {
            // Arrange
            var mockField = new Mock <IField>();
            var expr      = new FieldExpression(mockField.Object);
            var op        = ComparisonOperator.LT;

            // Act
            var clause = new CrossFieldClause(expr, op, expr);
            var fields = clause.GetDependentFields();

            // Assert
            clause.LHS.Should().Be(expr);
            clause.Operator.Should().Be(op);
            clause.RHS.Should().Be(expr);
            fields.Should().BeEquivalentTo(new IField[] { mockField.Object, mockField.Object });
        }
Ejemplo n.º 3
0
        public void CrossFieldClauseNegated_GTE()
        {
            // Arrange
            var mockField = new Mock <IField>();
            var expr      = new FieldExpression(mockField.Object);
            var op        = ComparisonOperator.GTE;

            mockField.Setup(field => field.DataType).Returns(DBType.Int32);
            var clause      = new CrossFieldClause(expr, op, expr);
            var mockBuilder = new Mock <IConstraintDeclBuilder>();

            // Act
            var negation = clause.Negation();

            negation.AddDeclarationTo(mockBuilder.Object);

            // Assert
            var expected = new CrossFieldClause(expr, ComparisonOperator.LT, expr);

            mockBuilder.Verify(builder => builder.AddClause(expected.Matcher()));
            mockBuilder.VerifyNoOtherCalls();
        }