Ejemplo n.º 1
0
        public void Matches_MdxQueryWithNullComparedToSqlWithValue_NonMatching()
        {
            //Buiding object used during test
            var sql           = "SELECT 'CY 2010',  0 ";
            var expectedQuery = new NBi.Core.Query.Query(sql, ConnectionStringReader.GetSqlClient());
            var resolver      = new FakeQueryResultSetResolver(expectedQuery, serviceLocator);
            var builder       = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var ctr = new EqualToConstraint(builder.GetService());

            ctr.Using(
                new SettingsOrdinalResultSet(
                    SettingsOrdinalResultSet.KeysChoice.AllExpectLast,
                    SettingsOrdinalResultSet.ValuesChoice.Last,
                    NumericAbsoluteTolerance.None
                    )
                );

            var mdx   = "SELECT [Measures].[Amount] ON 0, [Date].[Calendar].[Calendar Year].&[2010] ON 1 FROM [Adventure Works]";
            var query = new NBi.Core.Query.Query(mdx, ConnectionStringReader.GetAdomd());

            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetResolver(query, serviceLocator));
            var actual = actualBuilder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual), Is.False);
        }
Ejemplo n.º 2
0
        public void Matches_TwoQueriesOfThreeSecondsSequential_SlowerThanSixSeconds()
        {
            var query1 = new NBi.Core.Query.Query("WAITFOR DELAY '00:00:03';SELECT 1;", ConnectionStringReader.GetSqlClient());
            var query2 = new NBi.Core.Query.Query("WAITFOR DELAY '00:00:03';SELECT 1;", ConnectionStringReader.GetSqlClient());

            var loader  = new FakeQueryResultSetResolver(query2, serviceLocator);
            var builder = new ResultSetServiceBuilder();

            builder.Setup(loader);
            BaseResultSetComparisonConstraint ctr = new EqualToConstraint(builder.GetService());

            ctr = ctr.Sequential();

            //Method under test
            var chrono        = DateTime.Now;
            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetResolver(query1, serviceLocator));
            var actual = actualBuilder.GetService();

            Assert.That(actual, ctr);
            var elapsed = DateTime.Now.Subtract(chrono);

            Assert.That(elapsed.Seconds, Is.GreaterThanOrEqualTo(6));
        }
Ejemplo n.º 3
0
        public void Matches_MdxQueryAndSlighltyDifferentQueryWithCorrectSettings_NotMatching()
        {
            //Buiding object used during test
            var mdx = "WITH MEMBER [Measures].NewAmount AS [Measures].[Amount]+1";

            mdx += " SELECT [Measures].NewAmount ON 0, NON EMPTY([Date].[Calendar].[Calendar Year]) ON 1 FROM [Adventure Works]";
            var expectedQuery = new NBi.Core.Query.Query(mdx, ConnectionStringReader.GetAdomd());
            var resolver      = new FakeQueryResultSetResolver(expectedQuery, serviceLocator);
            var builder       = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var ctr = new EqualToConstraint(builder.GetService());

            ctr.Using(new SettingsOrdinalResultSet(
                          SettingsOrdinalResultSet.KeysChoice.First,
                          SettingsOrdinalResultSet.ValuesChoice.Last,
                          NumericAbsoluteTolerance.None)
                      );

            var mdx2  = "SELECT [Measures].[Amount] ON 0, ([Date].[Calendar].[Calendar Year]-[Date].[Calendar].[Calendar Year].&[2010]) ON 1  FROM [Adventure Works]";
            var query = new NBi.Core.Query.Query(mdx2, ConnectionStringReader.GetAdomd());

            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetResolver(query, serviceLocator));
            var actual = actualBuilder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual), Is.False);
        }
Ejemplo n.º 4
0
        public void Matches_MdxQueryAndSqlQueryWithCorrectSettings_Matching()
        {
            //Buiding object used during test
            var sql = "SELECT 'CY 2005',  1874469 UNION ";

            sql += " SELECT 'CY 2006', 4511243 UNION ";
            sql += " SELECT 'CY 2007', 4709851 UNION ";
            sql += " SELECT 'CY 2008', 1513940  ";

            var expectedQuery = new NBi.Core.Query.Query(sql, ConnectionStringReader.GetSqlClient());
            var resolver      = new FakeQueryResultSetResolver(expectedQuery, serviceLocator);
            var builder       = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var ctr = new EqualToConstraint(builder.GetService());

            ctr.Using(
                new SettingsOrdinalResultSet(
                    SettingsOrdinalResultSet.KeysChoice.AllExpectLast,
                    SettingsOrdinalResultSet.ValuesChoice.Last,
                    new List <IColumnDefinition>()
            {
                new Column()
                {
                    Identifier = new ColumnOrdinalIdentifier(1),
                    Role       = ColumnRole.Value,
                    Type       = ColumnType.Numeric,
                    Tolerance  = "5"
                }
            }
                    )
                );

            var mdx   = "SELECT  [Measures].[Amount] ON 0, NON EMPTY([Date].[Calendar].[Calendar Year]) ON 1 FROM [Adventure Works]";
            var query = new NBi.Core.Query.Query(mdx, ConnectionStringReader.GetAdomd());

            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetResolver(query, serviceLocator));
            var actual = actualBuilder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual));
        }
Ejemplo n.º 5
0
        public void Matches_MdxQueryAndSlighltyDifferentQueryWithCorrectSettingsAndTolerance_Matching()
        {
            //Buiding object used during test
            var mdx = "WITH MEMBER [Measures].NewAmount AS [Measures].[Amount]+1";

            mdx += " SELECT [Measures].NewAmount ON 0, ([Date].[Calendar].[Calendar Year].[CY 2005]:[Date].[Calendar].[Calendar Year].[CY 2008]) ON 1  FROM [Adventure Works]";
            var expectedQuery = new NBi.Core.Query.Query(mdx, ConnectionStringReader.GetAdomd());
            var resolver      = new FakeQueryResultSetResolver(expectedQuery, serviceLocator);
            var builder       = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var ctr = new EqualToConstraint(builder.GetService());

            ctr.Using(new SettingsOrdinalResultSet(
                          SettingsOrdinalResultSet.KeysChoice.First,
                          SettingsOrdinalResultSet.ValuesChoice.Last,
                          new List <IColumnDefinition>()
            {
                new Column()
                {
                    Identifier = new ColumnOrdinalIdentifier(1),
                    Role       = ColumnRole.Value,
                    Type       = ColumnType.Numeric,
                    Tolerance  = "10"
                }
            }
                          )
                      );

            var query = "SELECT  [Measures].[Amount] ON 0, NON EMPTY([Date].[Calendar].[Calendar Year]) ON 1 FROM [Adventure Works]";
            var cmd   = new NBi.Core.Query.Query(query, ConnectionStringReader.GetAdomd());


            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetResolver(cmd, serviceLocator));
            var actual = actualBuilder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual));
        }
Ejemplo n.º 6
0
        public void Matches_SqlQueryWithDateComparedToStringAnotherHour_NonMatching()
        {
            //Buiding object used during test
            var expectedSql   = "SELECT 'CY 2010',  CAST('2010-01-01' AS DATE)";
            var expectedQuery = new NBi.Core.Query.Query(expectedSql, ConnectionStringReader.GetSqlClient());

            var columns = new List <IColumnDefinition>()
            {
                new Column()
                {
                    Identifier = new ColumnOrdinalIdentifier(1), Role = ColumnRole.Value, Type = ColumnType.DateTime
                }
            };

            var expectedLoader  = new FakeQueryResultSetResolver(expectedQuery, serviceLocator);
            var expectedBuilder = new ResultSetServiceBuilder();

            expectedBuilder.Setup(expectedLoader);
            var ctr = new EqualToConstraint(expectedBuilder.GetService());

            ctr.Using(
                new SettingsOrdinalResultSet(
                    SettingsOrdinalResultSet.KeysChoice.AllExpectLast,
                    SettingsOrdinalResultSet.ValuesChoice.Last,
                    columns
                    )
                );

            var sql2    = "SELECT 'CY 2010',  '1/01/2010 01:00:00'";
            var query   = new NBi.Core.Query.Query(sql2, ConnectionStringReader.GetSqlClient());
            var builder = new ResultSetServiceBuilder();

            builder.Setup(new FakeQueryResultSetResolver(query, serviceLocator));
            var actual = builder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual), Is.False);
        }
Ejemplo n.º 7
0
        public void Matches_SqlQueryWithDateComparedToString_Matching()
        {
            var expectedSql   = "SELECT 'CY 2010',  CAST('2010-01-01' AS DATE)";
            var expectedQuery = new NBi.Core.Query.Query(expectedSql, ConnectionStringReader.GetSqlClient());

            var columns = new List <IColumnDefinition>()
            {
                new Column()
                {
                    Index = 1, Role = ColumnRole.Value, Type = ColumnType.DateTime
                }
            };
            var resolver = new FakeQueryResultSetResolver(expectedQuery, serviceLocator);
            var builder  = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var ctr = new EqualToConstraint(builder.GetService());

            ctr.Using(
                new SettingsIndexResultSet(
                    SettingsIndexResultSet.KeysChoice.AllExpectLast,
                    SettingsIndexResultSet.ValuesChoice.Last,
                    columns
                    )
                );

            var sql   = "SELECT 'CY 2010',  '1/01/2010 00:00:00'";
            var query = new NBi.Core.Query.Query(sql, ConnectionStringReader.GetSqlClient());

            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetResolver(query, serviceLocator));
            var actual = actualBuilder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual));
        }