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); }
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); }
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); }
protected virtual object InstantiateSystemUnderTest(ResultSetSystemXml resultSetXml) { var builder = new ResultSetServiceBuilder(); builder.Setup(InstantiateResolver(resultSetXml)); builder.Setup(InstantiateAlterations(resultSetXml)); return(builder.GetService()); }
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()); }
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); }
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)); }
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); }
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)); }
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)); }
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)); }
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 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); }
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)); }
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); }
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)); }
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); }
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); }
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)); }
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)); }
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); }
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); }
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); }
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)); }
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); }
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)); }
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); }
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)); }
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)); }