Exemple #1
0
        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());
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 public abstract void Visit(PredicateFilter filter);