Пример #1
0
        public void Matches_AllValidatePredicate_True()
        {
            var rs = new ResultSet();

            rs.Load(new[] { new object[] { "a", -1 }, new object[] { "b", -2 }, new object[] { "c", -3 } });

            var predicate = Mock.Of <IPredicateInfo>
                            (
                p => p.ColumnType == ColumnType.Numeric &&
                p.ComparerType == ComparerType.LessThan &&
                p.Operand == "#1" &&
                p.Reference == (object)0
                            );

            var factory = new PredicateFilterFactory();
            var filter  = factory.Instantiate
                          (
                new List <IColumnAlias>()
                , new List <IColumnExpression>()
                , predicate
                          );

            var singleRowCtr = new AllRowsConstraint(filter);

            Assert.That(singleRowCtr.Matches(rs), Is.True);
        }
Пример #2
0
        protected override NBiConstraint InstantiateConstraint()
        {
            var filter = InstantiateFilter();
            var ctr    = new AllRowsConstraint(filter);

            return(ctr);
        }
Пример #3
0
        protected NBiConstraint InstantiateConstraint()
        {
            AllRowsConstraint ctr;

            var expressions = new List <IColumnExpression>();

            if (ConstraintXml.Expression != null)
            {
                expressions.Add(ConstraintXml.Expression);
            }

            if (ConstraintXml.Predicate.Reference != null)
            {
                ConstraintXml.Predicate.Reference = EvaluatePotentialVariable(ConstraintXml.Predicate.Reference);
            }

            var factory = new PredicateFilterFactory();
            var filter  = factory.Instantiate
                          (
                ConstraintXml.Aliases
                , expressions
                , ConstraintXml.Predicate
                          );

            ctr = new AllRowsConstraint(filter);
            return(ctr);
        }
Пример #4
0
        public void Matches_SingleValidatePredicate_False()
        {
            var rs = new ResultSet();

            rs.Load(new[] { new object[] { "a", -1 }, new object[] { "b", 2 }, new object[] { "c", 3 } });

            var predicate = new Mock <IPredicateInfo>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Numeric);
            predicate.SetupGet(p => p.ComparerType).Returns(ComparerType.LessThan);
            predicate.SetupGet(p => p.Operand).Returns("#1");
            predicate.As <IReferencePredicateInfo>().SetupGet(p => p.Reference).Returns((object)0);

            var factory = new PredicateFilterFactory();
            var filter  = factory.Instantiate
                          (
                new List <IColumnAlias>()
                , new List <IColumnExpression>()
                , predicate.Object
                          );

            var singleRowCtr = new AllRowsConstraint(filter);

            Assert.That(singleRowCtr.Matches(rs), Is.False);
        }
Пример #5
0
        public void Matches_AllValidatePredicate_True()
        {
            var rs = new ResultSet();

            rs.Load(new[] { new object[] { "a", -1 }, new object[] { "b", -2 }, new object[] { "c", -3 } });

            var predicate = new Mock <ReferencePredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Numeric);
            predicate.SetupGet(p => p.ComparerType).Returns(ComparerType.LessThan);
            predicate.SetupGet(p => p.Reference).Returns(new LiteralScalarResolver <decimal>(0));

            var predication = new Mock <PredicationArgs>();

            predication.SetupGet(p => p.Identifier).Returns(new ColumnOrdinalIdentifier(1));
            predication.SetupGet(p => p.Predicate).Returns(predicate.Object);

            var factory = new ResultSetFilterFactory(null);
            var filter  = factory.Instantiate
                          (
                predication.Object
                , Context.None
                          );

            var singleRowCtr = new AllRowsConstraint(filter);

            Assert.That(singleRowCtr.Matches(rs), Is.True);
        }
Пример #6
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 alias     = Mock.Of <IColumnAlias>(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 factory = new PredicateFilterFactory();
            var filter  = factory.Instantiate
                          (
                new List <IColumnAlias>()
            {
                alias
            }
                , 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());
        }
Пример #7
0
        public void Matches_ResultSetService_CallToExecuteOnce()
        {
            var resultSet = new ResultSet();

            resultSet.Load("a;b;1");

            var serviceMock = new Mock <IResultSetService>();

            serviceMock.Setup(s => s.Execute())
            .Returns(resultSet);
            var service = serviceMock.Object;

            var alias     = Mock.Of <IColumnAlias>(v => v.Column == 2 && v.Name == "Value");
            var predicate = Mock.Of <IPredicateInfo>
                            (
                p => p.ColumnType == ColumnType.Numeric &&
                p.ComparerType == ComparerType.Equal &&
                p.Operand == "Value" &&
                p.Reference == (object)1
                            );

            var factory = new PredicateFilterFactory();
            var filter  = factory.Instantiate
                          (
                new List <IColumnAlias>()
            {
                alias
            }
                , new List <IColumnExpression>()
            {
            }
                , predicate
                          );

            var rowCount = new AllRowsConstraint(filter);

            //Method under test
            rowCount.Matches(service);

            //Test conclusion
            serviceMock.Verify(s => s.Execute(), Times.Once());
        }
Пример #8
0
        public void Matches_ResultSetService_CallToExecuteOnce()
        {
            var resultSet = new ResultSet();

            resultSet.Load("a;b;1");

            var serviceMock = new Mock <IResultSetService>();

            serviceMock.Setup(s => s.Execute())
            .Returns(resultSet);
            var service = serviceMock.Object;

            var alias     = Mock.Of <IColumnAlias>(v => v.Column == 2 && v.Name == "Value");
            var predicate = new Mock <ReferencePredicateArgs>();

            predicate.SetupGet(p => p.ColumnType).Returns(ColumnType.Numeric);
            predicate.SetupGet(p => p.ComparerType).Returns(ComparerType.Equal);
            predicate.SetupGet(p => p.Reference).Returns(new LiteralScalarResolver <decimal>(1));

            var predication = new Mock <PredicationArgs>();

            predication.SetupGet(p => p.Identifier).Returns(new ColumnNameIdentifier("Value"));
            predication.SetupGet(p => p.Predicate).Returns(predicate.Object);

            var factory = new ResultSetFilterFactory(null);
            var filter  = factory.Instantiate
                          (
                predication.Object
                , new Context(null, new List <IColumnAlias>()
            {
                alias
            }, Array.Empty <IColumnExpression>())
                          );

            var rowCount = new AllRowsConstraint(filter);

            //Method under test
            rowCount.Matches(service);

            //Test conclusion
            serviceMock.Verify(s => s.Execute(), Times.Once());
        }
Пример #9
0
        protected NBiConstraint InstantiateConstraint()
        {
            AllRowsConstraint ctr;

            IResultSetFilter filter = null;

            var expressions = new List <IColumnExpression>();

            if (ConstraintXml.Expression != null)
            {
                expressions.Add(ConstraintXml.Expression);
            }

            filter = new PredicateFilter
                     (
                ConstraintXml.Variables
                , expressions
                , ConstraintXml.Predicate
                     );

            ctr = new AllRowsConstraint(filter);
            return(ctr);
        }