public void ParseAxisParameter_WithSubsequentIdentifiers_SucceedsReturnsAxisParameter() { //ARRANGE const string queryString = "[Aaa].[Bbb].[Ccc].FUNCTION(1, 2).FUNCTION"; const string expectedString = "[Aaa].[Bbb].[Ccc].FUNCTION(1, 2).FUNCTION"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseMember(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxMember>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void AppendQuery_OneWhere_ExtendedWhereClause() { const string initialQueryString = "SELECT { [MyMember] } ON Columns " + "FROM [Cube] " + "WHERE { ( { ( [Test].[Test Name].&[test] ) }) }"; const string expectedQueryString = "SELECT { [MyMember] } ON Columns " + "FROM [Cube] " + "WHERE { ( { ( { ( [Test].[Test Name].&[test] ) } ) }, { [Company].[Company Name].&[test] } ) }"; var mdxQuery = new MdxParser().ParseQuery(initialQueryString); mdxQuery.Where(Mdx.Tuple().With(Mdx.Member("Company", "Company Name").WithValue("test"))); mdxQuery.ToString().Should().Be(expectedQueryString); }
public void ParseCube_WithParameters_SecceedsAndReturnsCube() { //ARRANGE const string queryString = "[Aaa].[Bbb].[Ccc]"; const string expectedString = "[Aaa].[Bbb].[Ccc]"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseCube(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxCube>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ParseAxis_WithParameters_SecceedsAndReturnsAxis() { //ARRANGE const string queryString = "NON EMPTY { [Aaa].[Bbb].[Ccc].FUNCTION(1, 2).FUNCTION, [Aaa] } ON Columns"; const string expectedString = "NON EMPTY { [Aaa].[Bbb].[Ccc].FUNCTION(1, 2).FUNCTION, [Aaa] } ON Columns"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseAxis(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxAxis>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ParseAxis_WithParameterAndDimensionProperties_SecceedsAndReturnsAxis() { //ARRANGE const string queryString = "NON EMPTY { [Aaa] } DIMENSION PROPERTIES CATALOG_NAME, CUSTOM_ROLLUP ON Columns"; const string expectedString = "NON EMPTY { [Aaa] } DIMENSION PROPERTIES CATALOG_NAME, CUSTOM_ROLLUP ON Columns"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseAxis(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxAxis>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ParseRange_WithTwoMembers_SuceeedsAndReturnsRange() { //ARRANGE const string queryString = "[A].&[1]:[A].&[2]"; const string expectedString = "[A].&[1]:[A].&[2]"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseRange(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxRange>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ParseNavigationFunction_WithSubsequentFunctions_SuccedsAndReturnsFunction() { //ARRANGE const string queryString = "FUNCTION(1, 2)"; const string expectedString = "FUNCTION(1, 2)"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseNavigationFunction(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxNavigationFunction>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ParseFunction_WithSingleNumberAndTextExpressionParameter_SuceeedsAndReturnsFunction() { //ARRANGE const string queryString = "MYFUNCTION.Func(1 + 'asd')"; const string expectedString = "MYFUNCTION.Func(1 + 'asd')"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseFunction(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxFunction>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ParseExpression_WithSimpleExpression_SuceeedsAndReturnsExpression() { //ARRANGE const string queryString = "TRUE AND NOT FALSE"; const string expectedString = "TRUE AND (NOT (FALSE))"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseExpression(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxExpression>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ParseMember_WithFunctionAfterValueMember_SuceeedsAndReturnsValueMemberWithFunction() { //ARRANGE const string queryString = "[Dim1 Hierarchy].[Dim1].[Dim1 Key].&[1].AllMembers"; const string expectedString = "[Dim1 Hierarchy].[Dim1].[Dim1 Key].&[1].AllMembers"; //ACT MdxExpressionBase expression; bool isSucceeded = MdxParser.TryParseMember(_lexer.Tokenize(queryString).GetStatedTwoWayEnumerator(), out expression); //ASSERT Assert.That(isSucceeded, Is.True); Assert.That(expression, Is.InstanceOf <MdxMember>()); Assert.That(expression.ToString(), Is.EqualTo(expectedString)); }
public void ChangeQuery_OneAxisSlicer_RemoveSetMember() { const string initialQueryString = "SELECT { [MyMember], [MemberToRemove] } ON Columns " + "FROM [Cube]"; const string expectedQueryString = "SELECT { [MyMember] } ON Columns " + "FROM [Cube]"; var mdxQuery = new MdxParser().ParseQuery(initialQueryString); var tuple = mdxQuery.Axes.Select(a => a.AxisSlicer).FirstOrDefault(); var memberToRemove = tuple.GetMember("MemberToRemove"); tuple.Without(memberToRemove); mdxQuery.ToString().Should().Be(expectedQueryString); }
public void AppendQuery_OneWhere_ExtendedWhereClause() { //ARRANGE const string initialQueryString = "SELECT { [MyMember] } ON Columns " + "FROM [Cube] " + "WHERE { ( { ( [Test].[Test Name].&[test] ) }) }"; const string expectedQueryString = "SELECT { [MyMember] } ON Columns " + "FROM [Cube] " + "WHERE { ( { ( { ( [Test].[Test Name].&[test] ) } ) }, { [Company].[Company Name].&[test] } ) }"; //ACT var mdxQuery = new MdxParser().ParseQuery(initialQueryString); mdxQuery.Where(Mdx.Tuple().With(Mdx.Member("Company", "Company Name").WithValue("test"))); //ASSERT Assert.That(mdxQuery.ToString(), Is.EqualTo(expectedQueryString)); }
public void ChangeQuery_OneAxisSlicer_RemoveSetMember() { //ARRANGE const string initialQueryString = "SELECT { [MyMember], [MemberToRemove] } ON Columns " + "FROM [Cube]"; const string expectedQueryString = "SELECT { [MyMember] } ON Columns " + "FROM [Cube]"; //ACT var mdxQuery = new MdxParser().ParseQuery(initialQueryString); var tuple = mdxQuery.Axes.Select(a => a.AxisSlicer).FirstOrDefault(); if (tuple != null) { var memberToRemove = tuple.GetMember("MemberToRemove"); tuple.Without(memberToRemove); } //ASSERT Assert.That(mdxQuery.ToString(), Is.EqualTo(expectedQueryString)); }
public void TestFixtureSetUp() { _parserSut = new MdxParser(); }