Exemplo n.º 1
0
        public void Matches_MdxQueryWithNullComparedToSqlWithNull_Matching()
        {
            //Buiding object used during test
            var expectedQuery = "SELECT 'CY 2010',  NULL ";

            var expectedCmd = new SqlCommand(expectedQuery, new SqlConnection(ConnectionStringReader.GetSqlClient()));
            var resolver    = new FakeQueryResultSetLoader(expectedCmd);
            var builder     = new ResultSetServiceBuilder();

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

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

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

            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetLoader(cmd));
            var actual = actualBuilder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual));
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        public void Matches_MdxQueryAndResulSetWithoutKeyValuesInfo_Matching()
        {
            //Buiding object used during test
            var objs = new List <object[]>()
            {
                new object[] { "CY 2005", "1874469.00" },
                new object[] { "CY 2006", "4511243.0" },
                new object[] { "CY 2007", "4709851" },
                new object[] { "CY 2008", "1513940" }
            };

            var resolver = new ObjectsResultSetResolver(new ObjectsResultSetResolverArgs(objs.ToArray()));
            var builder  = new ResultSetServiceBuilder();

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

            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));
        }
        protected override void SpecificBuild()
        {
            var ctrXml = ConstraintXml as LookupExistsXml;

            ctrXml.ResultSet.Settings = ctrXml.Settings;

            var factory  = new ColumnIdentifierFactory();
            var mappings = new ColumnMappingCollection(
                ctrXml.Join?.Mappings
                .Select(mapping => new ColumnMapping(
                            factory.Instantiate(mapping.Candidate)
                            , factory.Instantiate(mapping.Reference)
                            , mapping.Type))
                .Union(
                    ctrXml.Join?.Usings.Select(@using => new ColumnMapping(
                                                   factory.Instantiate(@using.Column)
                                                   , @using.Type)
                                               )));

            var builder = new ResultSetServiceBuilder();

            builder.Setup(Helper.InstantiateResolver(ctrXml.ResultSet));
            builder.Setup(Helper.InstantiateAlterations(ctrXml.ResultSet));
            var service = builder.GetService();

            var ctr = ctrXml.IsReversed ? new LookupReverseExistsConstraint(service) : new LookupExistsConstraint(service);

            Constraint = ctr.Using(mappings);
        }
Exemplo n.º 5
0
        public void Execute_LoaderAndTwoAlters_SecondAlterCalledWithResultOfFirst()
        {
            var rs = new NBi.Core.ResultSet.ResultSet();

            rs.Load("a;1");

            var loaderStub = new Mock <IResultSetResolver>();

            loaderStub.Setup(l => l.Execute()).Returns(It.IsAny <NBi.Core.ResultSet.ResultSet>());
            var loader = loaderStub.Object;

            var transformer1Stub = new Mock <TransformationProviderMockable>();

            transformer1Stub.Setup(l => l.Transform(It.IsAny <NBi.Core.ResultSet.ResultSet>())).Returns(rs);
            var transformer1 = transformer1Stub.Object;

            var transformer2Mock = new Mock <TransformationProviderMockable>();

            transformer2Mock.Setup(l => l.Transform(It.IsAny <NBi.Core.ResultSet.ResultSet>()));
            var transformer2 = transformer2Mock.Object;

            var builder = new ResultSetServiceBuilder();

            builder.Setup(loader);
            builder.Setup(transformer1.Transform);
            builder.Setup(transformer2.Transform);
            var service = builder.GetService();

            service.Execute();

            transformer2Mock.Verify(t => t.Transform(rs), Times.Once);
        }
Exemplo n.º 6
0
        public void Execute_LoaderAndTransformer_TransformerCalledWithLoaderResult()
        {
            var rs = new NBi.Core.ResultSet.ResultSet();

            rs.Load("a;1");

            var loaderStub = new Mock <IResultSetResolver>();

            loaderStub.Setup(l => l.Execute()).Returns(rs);
            var loader = loaderStub.Object;

            var transformerMock = new Mock <TransformationProviderMockable>();

            transformerMock.Setup(l => l.Transform(rs));
            var transformer = transformerMock.Object;

            var builder = new ResultSetServiceBuilder();

            builder.Setup(loader);
            if (transformer != null)
            {
                builder.Setup(transformer.Transform);
            }
            var service = builder.GetService();

            service.Execute();

            transformerMock.Verify(t => t.Transform(rs), Times.Once);
        }
Exemplo n.º 7
0
        public void Matches_MdxQueryAndDecimalResulSetWithCorrectSettings_Matching()
        {
            //Buiding object used during test
            var objs = new List <object[]>()
            {
                new object[] { "CY 2005", 1874469.00 },
                new object[] { "CY 2006", 4511243.0 },
                new object[] { "CY 2007", 4709851 },
                new object[] { "CY 2008", 1513940 }
            };
            var resolver = new ObjectsResultSetResolver(new ObjectsResultSetResolverArgs(objs.ToArray()));
            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 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));
        }
Exemplo n.º 8
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);
        }
Exemplo n.º 9
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));
        }
Exemplo n.º 10
0
        public void Matches_TwoQueriesOfThreeSecondsParallel_FasterThanSixSeconds()
        {
            var command = new SqlCommand
            {
                Connection  = new SqlConnection(ConnectionStringReader.GetSqlClient()),
                CommandText = "WAITFOR DELAY '00:00:03';SELECT 1;"
            };

            var command2 = new SqlCommand
            {
                Connection  = new SqlConnection(ConnectionStringReader.GetSqlClient()),
                CommandText = "WAITFOR DELAY '00:00:03';SELECT 1;"
            };

            var loader  = new FakeQueryResultSetLoader(command2);
            var builder = new ResultSetServiceBuilder();

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

            ctr = ctr.Parallel();

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

            actualBuilder.Setup(new FakeQueryResultSetLoader(command));
            var actual = actualBuilder.GetService();

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

            Assert.That(elapsed.Seconds, Is.LessThan(6));
        }
Exemplo n.º 11
0
        protected virtual object InstantiateSystemUnderTest(ResultSetSystemXml resultSetXml)
        {
            var builder = new ResultSetServiceBuilder();

            builder.Setup(InstantiateResolver(resultSetXml));
            builder.Setup(InstantiateAlterations(resultSetXml));
            return(builder.GetService());
        }
Exemplo n.º 12
0
        protected virtual object InstantiateSystemUnderTest(ResultSetSystemXml resultSetXml)
        {
            var builder = new ResultSetServiceBuilder();
            var helper  = new ResultSetSystemHelper(ServiceLocator, SettingsXml.DefaultScope.SystemUnderTest, Variables);

            builder.Setup(helper.InstantiateResolver(resultSetXml));
            builder.Setup(helper.InstantiateAlterations(resultSetXml));
            return(builder.GetService());
        }
Exemplo n.º 13
0
        protected virtual IResultSetService InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var queryArgsBuilder = new QueryResolverArgsBuilder(ServiceLocator);

            queryArgsBuilder.Setup(executionXml.Item, executionXml.Settings, Variables);
            queryArgsBuilder.Build();

            var factory  = ServiceLocator.GetResultSetResolverFactory();
            var resolver = factory.Instantiate(new QueryResultSetResolverArgs(queryArgsBuilder.GetArgs()));

            var builder = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var service = builder.GetService();

            return(service);
        }
Exemplo n.º 14
0
        public void Matches_MdxQueryAndSqlQueryWithCorrectSettings_Matching()
        {
            //Buiding object used during test
            var expectedQuery = "SELECT 'CY 2005',  1874469 UNION ";

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

            var expectedCmd = new SqlCommand(expectedQuery, new SqlConnection(ConnectionStringReader.GetSqlClient()));
            var resolver    = new FakeQueryResultSetLoader(expectedCmd);
            var builder     = new ResultSetServiceBuilder();

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

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

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


            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetLoader(cmd));
            var actual = actualBuilder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual));
        }
Exemplo n.º 15
0
        public void Execute_LoaderOnly_ReturnsLoadedResultSet()
        {
            var rs = new NBi.Core.ResultSet.ResultSet();

            rs.Load("a;1");

            var loaderMock = new Mock <IResultSetResolver>();

            loaderMock.Setup(l => l.Execute()).Returns(rs);
            var loader = loaderMock.Object;

            var builder = new ResultSetServiceBuilder();

            builder.Setup(loader);
            var service = builder.GetService();
            var result  = service.Execute();

            Assert.That(result, Is.EqualTo(rs));
        }
Exemplo n.º 16
0
        protected virtual IResultSetService InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var commandFactory = new CommandProvider();

            var argsBuilder = new QueryResolverArgsBuilder(ServiceLocator);

            var connectionString = executionXml.Item.GetConnectionString();
            var statement        = (executionXml.Item as QueryableXml).GetQuery();

            IEnumerable <IQueryParameter>        parameters        = null;
            IEnumerable <IQueryTemplateVariable> templateVariables = null;
            int timeout     = 0;
            var commandType = CommandType.Text;

            if (executionXml.BaseItem is QueryXml)
            {
                parameters        = argsBuilder.BuildParameters(((QueryXml)executionXml.BaseItem).GetParameters());
                templateVariables = ((QueryXml)executionXml.BaseItem).GetTemplateVariables();
                timeout           = ((QueryXml)executionXml.BaseItem).Timeout;
            }
            if (executionXml.BaseItem is ReportXml)
            {
                parameters = argsBuilder.BuildParameters(((ReportXml)executionXml.BaseItem).GetParameters());
            }

            if (executionXml.BaseItem is ReportXml)
            {
                commandType = ((ReportXml)executionXml.BaseItem).GetCommandType();
            }

            var queryArgs = new QueryResolverArgs(statement, connectionString, parameters, templateVariables, new TimeSpan(0, 0, timeout), commandType);
            var args      = new QueryResultSetResolverArgs(queryArgs);
            var factory   = ServiceLocator.GetResultSetResolverFactory();
            var resolver  = factory.Instantiate(args);

            var builder = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var service = builder.GetService();

            return(service);
        }
Exemplo n.º 17
0
        public void Execute_LoaderOnly_LoaderCalled()
        {
            var rs = new NBi.Core.ResultSet.ResultSet();

            rs.Load("a;1");

            var loaderMock = new Mock <IResultSetResolver>();

            loaderMock.Setup(l => l.Execute()).Returns(rs);
            var loader = loaderMock.Object;

            var builder = new ResultSetServiceBuilder();

            builder.Setup(loader);
            var service = builder.GetService();

            service.Execute();

            loaderMock.Verify(l => l.Execute(), Times.Once);
        }
Exemplo n.º 18
0
        protected override void SpecificBuild()
        {
            var ctrXml = ConstraintXml as LookupMatchesXml;

            ctrXml.ResultSet.Settings = ctrXml.Settings;


            var joinMappings      = new ColumnMappingCollection(BuildMappings(ctrXml.Join));
            var inclusionMappings = new ColumnMappingCollection(BuildMappings(ctrXml.Inclusion));

            var builder = new ResultSetServiceBuilder();

            builder.Setup(Helper.InstantiateResolver(ctrXml.ResultSet));
            builder.Setup(Helper.InstantiateAlterations(ctrXml.ResultSet));
            var service = builder.GetService();

            var ctr = new LookupMatchesConstraint(service);

            Constraint = ctr.Using(joinMappings, inclusionMappings);
        }
Exemplo n.º 19
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));
        }
Exemplo n.º 20
0
        protected virtual IResultSetService InstantiateSystemUnderTest(ExecutionXml executionXml)
        {
            var commandBuilder = new CommandBuilder();

            var connectionString = executionXml.Item.GetConnectionString();
            var commandText      = (executionXml.Item as QueryableXml).GetQuery();

            IEnumerable <IQueryParameter>        parameters = null;
            IEnumerable <IQueryTemplateVariable> variables  = null;
            int timeout = 0;

            if (executionXml.BaseItem is QueryXml)
            {
                var paramBuilder = new QueryResolverArgsBuilder();
                parameters = paramBuilder.BuildParameters(((QueryXml)executionXml.BaseItem).GetParameters());
                variables  = ((QueryXml)executionXml.BaseItem).GetVariables();
                timeout    = ((QueryXml)executionXml.BaseItem).Timeout;
            }
            if (executionXml.BaseItem is ReportXml)
            {
                var paramBuilder = new QueryResolverArgsBuilder();
                parameters = paramBuilder.BuildParameters(((ReportXml)executionXml.BaseItem).GetParameters());
            }
            var cmd = commandBuilder.Build(connectionString, commandText, parameters, variables, timeout);

            if (executionXml.BaseItem is ReportXml)
            {
                cmd.CommandType = ((ReportXml)executionXml.BaseItem).GetCommandType();
            }

            var args     = new QueryResultSetResolverArgs(new DbCommandQueryResolverArgs(cmd));
            var factory  = new ResultSetResolverFactory();
            var resolver = factory.Instantiate(args);

            var builder = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            var service = builder.GetService();

            return(service);
        }
Exemplo n.º 21
0
        protected override BaseResultSetComparisonConstraint InstantiateConstraint(object obj, SettingsXml settings, TransformationProvider transformation)
        {
            var argsBuilder = new ResultSetResolverArgsBuilder();

            argsBuilder.Setup(obj);
            argsBuilder.Build();

            var factory  = new ResultSetResolverFactory();
            var resolver = factory.Instantiate(argsBuilder.GetArgs());

            var builder = new ResultSetServiceBuilder();

            builder.Setup(resolver);
            if (transformation != null)
            {
                builder.Setup(transformation.Transform);
            }
            var service = builder.GetService();

            return(new SupersetOfConstraint(service));
        }
Exemplo n.º 22
0
        protected override void SpecificBuild()
        {
            var ctrXml = ConstraintXml as LookupMatchesXml;

            ctrXml.ResultSet.Settings = ctrXml.Settings;


            var joinMappings        = new ColumnMappingCollection(BuildMappings(ctrXml.Join));
            var inclusionMappings   = new ColumnMappingCollection(BuildMappings(ctrXml.Inclusion));
            var inclusionTolerances = BuildTolerances(ctrXml.Inclusion);

            var builder = new ResultSetServiceBuilder();
            var helper  = new ResultSetSystemHelper(ServiceLocator, SettingsXml.DefaultScope.Assert, Variables);

            builder.Setup(helper.InstantiateResolver(ctrXml.ResultSet));
            builder.Setup(helper.InstantiateAlterations(ctrXml.ResultSet));
            var service = builder.GetService();

            var ctr = new LookupMatchesConstraint(service);

            Constraint = ctr.Using(joinMappings, inclusionMappings, inclusionTolerances);
        }
Exemplo n.º 23
0
        public void Matches_SqlQueryWithDateComparedToStringAnotherHour_NonMatching()
        {
            //Buiding object used during test
            var expectedQuery = "SELECT 'CY 2010',  CAST('2010-01-01' AS DATE)";

            var expectedCmd = new SqlCommand(expectedQuery, new SqlConnection(ConnectionStringReader.GetSqlClient()));

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

            var expectedLoader  = new FakeQueryResultSetLoader(expectedCmd);
            var expectedBuilder = new ResultSetServiceBuilder();

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

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

            var query   = "SELECT 'CY 2010',  '1/01/2010 01:00:00'";
            var cmd     = new SqlCommand(query, new SqlConnection(ConnectionStringReader.GetSqlClient()));
            var builder = new ResultSetServiceBuilder();

            builder.Setup(new FakeQueryResultSetLoader(cmd));
            var actual = builder.GetService();

            //Assertion
            Assert.That(ctr.Matches(actual), Is.False);
        }
Exemplo n.º 24
0
        public void Matches_MdxQueryAndResulSetCsvFile_Matching()
        {
            //Buiding object used during test
            var filename = DiskOnFile.CreatePhysicalFile("NonEmptyAmountByYear.csv", "NBi.Testing.Integration.NUnit.Resources.NonEmptyAmountByYear.csv");
            var resolver = new CsvResultSetResolver(new CsvResultSetResolverArgs(new LiteralScalarResolver <string>(filename), string.Empty, CsvProfile.SemiColumnDoubleQuote));
            var builder  = new ResultSetServiceBuilder();

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

            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));
        }
Exemplo n.º 25
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);
        }
Exemplo n.º 26
0
        protected virtual BaseResultSetComparisonConstraint InstantiateConstraint(object obj, SettingsXml settings, TransformationProvider transformation)
        {
            var argsBuilder = new ResultSetResolverArgsBuilder(ServiceLocator);

            argsBuilder.Setup(obj);
            argsBuilder.Setup(settings);
            argsBuilder.Build();

            var factory  = ServiceLocator.GetResultSetResolverFactory();
            var resolver = factory.Instantiate(argsBuilder.GetArgs());

            var serviceBuilder = new ResultSetServiceBuilder();

            serviceBuilder.Setup(resolver);
            if (transformation != null)
            {
                serviceBuilder.Setup(transformation.Transform);
            }

            var service = serviceBuilder.GetService();

            return(new EqualToConstraint(service));
        }
Exemplo n.º 27
0
        protected override void SpecificBuild()
        {
            var ctrXml = ConstraintXml as ReferenceExistsXml;

            ctrXml.ResultSet.Settings = ctrXml.Settings;

            var mappings = new ColumnMappingCollection();

            foreach (var mapping in ctrXml.Mappings)
            {
                mappings.Add(new ColumnMapping(mapping.Child, mapping.Parent, mapping.Type));
            }

            var builder = new ResultSetServiceBuilder();

            builder.Setup(Helper.InstantiateResolver(ctrXml.ResultSet));
            builder.Setup(Helper.InstantiateAlterations(ctrXml.ResultSet));
            var service = builder.GetService();

            var ctr = new ReferenceExistsConstraint(service);

            Constraint = ctr.Using(mappings);
        }
Exemplo n.º 28
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));
        }
Exemplo n.º 29
0
        public void Matches_MdxQueryAndResulSetWithCorrectSettings_Matching()
        {
            //Buiding object used during test
            var objs = new List <object[]>()
            {
                new object[] { "CY 2005", "1874469.00" },
                new object[] { "CY 2006", "4511243.0" },
                new object[] { "CY 2007", "4709851" },
                new object[] { "CY 2008", "1513940" }
            };

            var resolver = new ObjectsResultSetResolver(new ObjectsResultSetResolverArgs(objs.ToArray()));
            var builder  = new ResultSetServiceBuilder();

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

            ctr.Using(new SettingsIndexResultSet(
                          SettingsIndexResultSet.KeysChoice.First,
                          SettingsIndexResultSet.ValuesChoice.Last,
                          new NumericAbsoluteTolerance(500, SideTolerance.Both)
                          )
                      );

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


            var actualBuilder = new ResultSetServiceBuilder();

            actualBuilder.Setup(new FakeQueryResultSetLoader(cmd));
            var actual = actualBuilder.GetService();

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