public void Matches_SqlCommand_CallToResultSetBuilderOnce() { var resultSet = new ResultSet(); resultSet.Load("a;b;1"); var cmd = new SqlCommand(); var rsbMock = new Mock <ResultSetBuilder>(); rsbMock.Setup(engine => engine.Build(It.IsAny <object>())) .Returns(resultSet); var rsb = rsbMock.Object; var variable = Mock.Of <IColumnVariable>(v => v.Column == 2 && v.Name == "Value"); var predicate = Mock.Of <IPredicateInfo> ( p => p.ColumnType == ColumnType.Numeric && p.ComparerType == ComparerType.Equal && p.Name == "Value" && p.Reference == (object)1 ); var filter = new PredicateFilter ( new List <IColumnVariable>() { variable } , new List <IColumnExpression>() { } , predicate ); var rowCount = new AllRowsConstraint(filter) { ResultSetBuilder = rsb }; rowCount.ResultSetBuilder = rsb; //Method under test rowCount.Matches(cmd); //Test conclusion rsbMock.Verify(engine => engine.Build(It.IsAny <object>()), Times.Once()); }
public void Apply_Resultset_CorrectResult() { var builder = new ResultSetBuilder(); var row1 = new List <object>() { "A", 10, 100 }; var row2 = new List <object>() { "B", 2, 75 }; var row3 = new List <object>() { "C", 5, 50 }; var rs = builder.Build(new object[] { row1, row2, row3 }); var v1 = Mock.Of <IColumnVariable>(v => v.Column == 1 && v.Name == "a"); var v2 = Mock.Of <IColumnVariable>(v => v.Column == 2 && v.Name == "b"); var variables = new List <IColumnVariable>() { v1, v2 }; var exp = Mock.Of <IColumnExpression>(e => e.Value == "a*b" && e.Name == "c"); var expressions = new List <IColumnExpression>() { exp }; var info = Mock.Of <IPredicateInfo> ( p => p.ComparerType == ComparerType.MoreThanOrEqual && p.ColumnType == ColumnType.Numeric && p.Name == "c" && p.Reference == (object)200 ); var filter = new PredicateFilter(variables, expressions, info); var result = filter.Apply(rs); Assert.That(result.Rows, Has.Count.EqualTo(2)); }
protected NBiConstraint InstantiateConstraint() { IResultSetFilter filter = null; var expressions = new List <IColumnExpression>(); if (ConstraintXml.Expression != null) { expressions.Add(ConstraintXml.Expression); } filter = new PredicateFilter ( ConstraintXml.Variables , expressions , ConstraintXml.Predicate ); var ctr = new NoRowsConstraint(filter); return(ctr); }
protected NBiConstraint InstantiateConstraint() { RowCountConstraint ctr; var childConstraint = BuildChildConstraint(ConstraintXml.Comparer); IResultSetFilter filter = null; if (ConstraintXml.Filter != null) { var filterXml = ConstraintXml.Filter; var expressions = new List <IColumnExpression>(); if (filterXml.Expression != null) { expressions.Add(filterXml.Expression); } filter = new PredicateFilter ( filterXml.Variables , expressions , filterXml.Predicate ); if (ConstraintXml.Comparer.Value.Replace(" ", "").EndsWith("%")) { ctr = new RowCountFilterPercentageConstraint(childConstraint, filter); } else { ctr = new RowCountFilterConstraint(childConstraint, filter); } } else { ctr = new RowCountConstraint(childConstraint); } return(ctr); }
public abstract void Visit(PredicateFilter filter);