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_MdxQueryAndResulSetWithCorrectSettings_Matching() { //Buiding object used during test var rs = new ResultSet(); var objs = new List <object[]>(); objs.Add(new object[] { "CY 2005", "1874469.00" }); objs.Add(new object[] { "CY 2006", "4511243.0" }); objs.Add(new object[] { "CY 2007", "4709851" }); objs.Add(new object[] { "CY 2008", "1513940" }); rs.Load(objs); var ctr = new EqualToConstraint(rs); ctr.Using(new SettingsResultSetComparisonByIndex( SettingsResultSetComparisonByIndex.KeysChoice.First, SettingsResultSetComparisonByIndex.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())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.True); }
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_AnyResultSets_EngineCalledOnceResultSetBuilderTwice() { var rs = new ResultSetCsvReader().Parse("a;b;c"); var cmd = new SqlCommand(); var rsbMock = new Mock <ResultSetBuilder>(); rsbMock.Setup(engine => engine.Build(It.IsAny <object>())) .Returns(rs); var rsb = rsbMock.Object; var rscMock = new Mock <IResultSetComparer>(); rscMock.Setup(engine => engine.Compare(It.IsAny <ResultSet>(), It.IsAny <ResultSet>())) .Returns(new ResultSetCompareResult() { Difference = ResultSetDifferenceType.None }); var rsc = rscMock.Object; var equalToConstraint = new EqualToConstraint(rs) { Engine = rsc, ResultSetBuilder = rsb }; equalToConstraint.ResultSetBuilder = rsb; //Method under test equalToConstraint.Matches(cmd); //Test conclusion //Test conclusion rscMock.Verify(engine => engine.Compare(It.IsAny <ResultSet>(), It.IsAny <ResultSet>()), Times.Once()); rsbMock.Verify(engine => engine.Build(It.IsAny <object>()), Times.Exactly(2)); }
public void Matches_IDbCommandAsActualAndPathAsExpectation_ResulSetBuildersCreateResultSetsUsingActualAndExpectationProvided() { var rsActual = new ResultSet(); rsActual.Load("a;b;1"); var rsExpect = new ResultSet(); rsExpect.Load("x;y;2"); var cmd = new SqlCommand(); var rsbMock = new Mock <IResultSetBuilder>(); rsbMock.Setup(engine => engine.Build(cmd)) .Returns(rsActual); rsbMock.Setup(engine => engine.Build("my path for expectation")) .Returns(rsExpect); var rsb = rsbMock.Object; var equalToConstraint = new EqualToConstraint("my path for expectation") { ResultSetBuilder = rsb }; //Method under test equalToConstraint.Matches(cmd); //Test conclusion //Test conclusion rsbMock.Verify(engine => engine.Build(cmd), Times.Once()); rsbMock.Verify(engine => engine.Build("my path for expectation"), Times.Once()); }
public void Matches_MdxQueryWithNullComparedToSqlWithValue_NonMatching() { //Buiding object used during test var expectedQuery = "SELECT 'CY 2010', 0 "; var expectedCmd = new SqlCommand(expectedQuery, new SqlConnection(ConnectionStringReader.GetSqlClient())); var ctr = new EqualToConstraint(expectedCmd); ctr.Using( new SettingsResultSetComparisonByIndex( SettingsResultSetComparisonByIndex.KeysChoice.AllExpectLast, SettingsResultSetComparisonByIndex.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())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.False); }
public void Matches_TwoDifferentResultSets_ReturnFalse() { var rsActual = new ResultSet(); rsActual.Load("a;b;1"); var rsExpect = new ResultSet(); rsExpect.Load("a;X;1"); var cmd = new SqlCommand(); var rsbMock = new Mock <IResultSetBuilder>(); rsbMock.Setup(engine => engine.Build(It.IsAny <IDbCommand>())) .Returns(rsActual); rsbMock.Setup(engine => engine.Build(rsExpect)) .Returns(rsExpect); var rsb = rsbMock.Object; var equalToConstraint = new EqualToConstraint(rsExpect) { ResultSetBuilder = rsb }; //Method under test var res = equalToConstraint.Matches(cmd); //Test conclusion rsbMock.Verify(engine => engine.Build(rsExpect), Times.Once()); Assert.That(res, Is.False); }
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(); command.Connection = new SqlConnection(ConnectionStringReader.GetSqlClient()); command.CommandText = "WAITFOR DELAY '00:00:03';SELECT 1;"; var command2 = new SqlCommand(); command2.Connection = new SqlConnection(ConnectionStringReader.GetSqlClient()); command2.CommandText = "WAITFOR DELAY '00:00:03';SELECT 1;"; BaseResultSetComparisonConstraint ctr = new EqualToConstraint(command2); ctr = ctr.Parallel(); //Method under test var chrono = DateTime.Now; Assert.That(command, ctr); var elapsed = DateTime.Now.Subtract(chrono); Assert.That(elapsed.Seconds, Is.LessThan(6)); }
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)); }
public void Matches_MdxQueryAndSlighltyDifferentQueryWithCorrectSettings_NotMatching() { //Buiding object used during test var expectedQuery = "WITH MEMBER [Measures].NewAmount AS [Measures].[Amount]+1"; expectedQuery += " SELECT [Measures].NewAmount ON 0, NON EMPTY([Date].[Calendar].[Calendar Year]) ON 1 FROM [Adventure Works]"; var expectedCmd = new AdomdCommand(expectedQuery, new AdomdConnection(ConnectionStringReader.GetAdomd())); var ctr = new EqualToConstraint(expectedCmd); ctr.Using(new SettingsResultSetComparisonByIndex( SettingsResultSetComparisonByIndex.KeysChoice.First, SettingsResultSetComparisonByIndex.ValuesChoice.Last, NumericAbsoluteTolerance.None) ); var query = "SELECT [Measures].[Amount] ON 0, ([Date].[Calendar].[Calendar Year]-[Date].[Calendar].[Calendar Year].&[2010]) ON 1 FROM [Adventure Works]"; var cmd = new AdomdCommand(query, new AdomdConnection(ConnectionStringReader.GetAdomd())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.False); }
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>(); columns.Add(new Column() { Index = 1, Role = ColumnRole.Value, Type = ColumnType.DateTime }); var ctr = new EqualToConstraint(expectedCmd); ctr.Using( new SettingsResultSetComparisonByIndex( SettingsResultSetComparisonByIndex.KeysChoice.AllExpectLast, SettingsResultSetComparisonByIndex.ValuesChoice.Last, columns ) ); var query = "SELECT 'CY 2010', '1/01/2010 01:00:00'"; var cmd = new SqlCommand(query, new SqlConnection(ConnectionStringReader.GetSqlClient())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.False); }
public void Matches_MdxQueryAndSlighltyDifferentQueryWithCorrectSettingsAndTolerance_Matching() { //Buiding object used during test var expectedQuery = "WITH MEMBER [Measures].NewAmount AS [Measures].[Amount]+1"; expectedQuery += " SELECT [Measures].NewAmount ON 0, ([Date].[Calendar].[Calendar Year].[CY 2005]:[Date].[Calendar].[Calendar Year].[CY 2008]) ON 1 FROM [Adventure Works]"; var expectedCmd = new AdomdCommand(expectedQuery, new AdomdConnection(ConnectionStringReader.GetAdomd())); var ctr = new EqualToConstraint(expectedCmd); ctr.Using(new SettingsResultSetComparisonByIndex( SettingsResultSetComparisonByIndex.KeysChoice.First, SettingsResultSetComparisonByIndex.ValuesChoice.Last, new List <IColumnDefinition>() { new Column() { Index = 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 AdomdCommand(query, new AdomdConnection(ConnectionStringReader.GetAdomd())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.True); }
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_AnyIDbCommandAsActualAndAnyPathAsExpectation_EngineCompareTheTwoResultSetsPreviouslyCreated() { var rsActual = new ResultSetCsvReader().Parse("a;b;c"); var rsExpect = new ResultSetCsvReader().Parse("x;y;z"); var cmd = new SqlCommand(); var rsbStub = new Mock <IResultSetBuilder>(); rsbStub.Setup(engine => engine.Build(It.IsAny <IDbCommand>())) .Returns(rsActual); rsbStub.Setup(engine => engine.Build(It.IsAny <string>())) .Returns(rsExpect); var rsbFake = rsbStub.Object; var rscMock = new Mock <IResultSetComparer>(); rscMock.Setup(engine => engine.Compare(rsActual, rsExpect)) .Returns(ResultSetCompareResult.NotMatching); var rsc = rscMock.Object; var equalToConstraint = new EqualToConstraint("my path for expectation") { ResultSetBuilder = rsbFake, Engine = rsc }; //Method under test equalToConstraint.Matches(cmd); //Test conclusion //Test conclusion rscMock.Verify(engine => engine.Compare(rsActual, rsExpect), Times.Once()); }
public void Matches_TwoQueriesOfThreeSecondsSequential_SlowerThanSixSeconds() { var command = new SqlCommand(); command.Connection = new SqlConnection(ConnectionStringReader.GetSqlClient()); command.CommandText = "WAITFOR DELAY '00:00:03';SELECT 1;"; var command2 = new SqlCommand(); command2.Connection = new SqlConnection(ConnectionStringReader.GetSqlClient()); command2.CommandText = "WAITFOR DELAY '00:00:03';SELECT 1;"; var ctr = new EqualToConstraint(command2); ctr = ctr.Sequential(); //Method under test var chrono = DateTime.Now; Assert.That(command, ctr); var elapsed = DateTime.Now.Subtract(chrono); Assert.That(elapsed.Seconds, Is.GreaterThanOrEqualTo(6)); }
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_TwoIdenticalResultSets_ReturnTrue() { var rs = new ResultSet(); rs.Load("a;X;1"); var cmd = new SqlCommand(); var rsbMock = new Mock <IResultSetBuilder>(); rsbMock.Setup(engine => engine.Build(It.IsAny <IDbCommand>())) .Returns(rs); rsbMock.Setup(engine => engine.Build(rs)) .Returns(rs); var rsb = rsbMock.Object; var equalToConstraint = new EqualToConstraint(rs) { ResultSetBuilder = rsb }; //Method under test var res = equalToConstraint.Matches(cmd); //Test conclusion rsbMock.Verify(engine => engine.Build(rs), Times.Once()); Assert.That(res, Is.True); }
public void Matches_MdxQueryAndResulSetCsvFile_Matching() { //Buiding object used during test var filename = DiskOnFile.CreatePhysicalFile("NonEmptyAmountByYear.csv", "NBi.Testing.Integration.NUnit.Resources.NonEmptyAmountByYear.csv"); var ctr = new EqualToConstraint(filename); 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())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.True); }
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 Matches_AnyServices_TheirResultsAreCompared() { var expectedRs = new ResultSet(); expectedRs.Load("a;b;c"); var actualRs = new ResultSet(); actualRs.Load("x;y;z"); var expectedServiceMock = new Mock <IResultSetService>(); expectedServiceMock.Setup(s => s.Execute()) .Returns(expectedRs); var expectedService = expectedServiceMock.Object; var actualServiceMock = new Mock <IResultSetService>(); actualServiceMock.Setup(s => s.Execute()) .Returns(actualRs); var actualService = actualServiceMock.Object; var rscMock = new Mock <IEquivaler>(); rscMock.Setup(engine => engine.Compare(It.IsAny <ResultSet>(), It.IsAny <ResultSet>())) .Returns(new ResultResultSet() { Difference = ResultSetDifferenceType.Content }); var rsc = rscMock.Object; var equalToConstraint = new EqualToConstraint(expectedService) { Engine = rsc }; //Method under test equalToConstraint.Matches(actualService); //Test conclusion rscMock.Verify(engine => engine.Compare(actualRs, expectedRs), Times.Once()); }
public void Matches_TwoDifferentResultSets_ReturnFalse() { var expectedRs = new ResultSet(); expectedRs.Load("a;b;c"); var actualRs = new ResultSet(); actualRs.Load("x;y;z"); var expectedServiceMock = new Mock <IResultSetService>(); expectedServiceMock.Setup(s => s.Execute()) .Returns(expectedRs); var expectedService = expectedServiceMock.Object; var actualServiceMock = new Mock <IResultSetService>(); actualServiceMock.Setup(s => s.Execute()) .Returns(actualRs); var actualService = actualServiceMock.Object; var rscMock = new Mock <IEquivaler>(); rscMock.Setup(engine => engine.Compare(actualRs, expectedRs)) .Returns(new ResultResultSet() { Difference = ResultSetDifferenceType.Content }); var rsc = rscMock.Object; var equalToConstraint = new EqualToConstraint(expectedService) { Engine = rsc }; //Method under test var result = equalToConstraint.Matches(actualService); //Test conclusion Assert.That(result, Is.False); }
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_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_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 ctr = new EqualToConstraint(expectedCmd); ctr.Using( new SettingsResultSetComparisonByIndex( SettingsResultSetComparisonByIndex.KeysChoice.AllExpectLast, SettingsResultSetComparisonByIndex.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())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.True); }
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_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_MdxQueryAndResulSetWithoutKeyValuesInfo_Matching() { //Buiding object used during test var rs = new ResultSet(); var objs = new List <object[]>(); objs.Add(new object[] { "CY 2005", "1874469.00" }); objs.Add(new object[] { "CY 2006", "4511243.0" }); objs.Add(new object[] { "CY 2007", "4709851" }); objs.Add(new object[] { "CY 2008", "1513940" }); rs.Load(objs); var ctr = new EqualToConstraint(rs); 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())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.True); }
public void Matches_MdxQueryAndSameQueryWithCorrectSettings_Matching() { //Buiding object used during test var expectedQuery = "SELECT [Measures].[Amount] ON 0, NON EMPTY([Date].[Calendar].[Calendar Year]) ON 1 FROM [Adventure Works]"; var expectedCmd = new AdomdCommand(expectedQuery, new AdomdConnection(ConnectionStringReader.GetAdomd())); var ctr = new EqualToConstraint(expectedCmd); ctr.Using(new ResultSetComparisonSettings( ResultSetComparisonSettings.KeysChoice.First, ResultSetComparisonSettings.ValuesChoice.Last, NumericAbsoluteTolerance.None) ); 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())); //Call the method to test var actual = ctr.Matches(cmd); //Assertion Assert.That(actual, Is.True); }