public void CreateQuery_WithFunctionAndDifferentExpressions_QueryCreatedAsExpected()
{
//ARRANGE
const string expectedQueryString = "SELECT { [Dim Hierarchy].[Dim] } ON Columns " +
"FROM [Cube] " +
"WHERE { ( { FILTER([Dim Hierarchy].[Dim].[Dim Key], { [Dim Hierarchy].[Dim].[Dim Key] }) } ) }";
//ACT
var query = Mdx.Query()
.On(Mdx.Axis().WithSlicer(Mdx.Tuple().With(Mdx.Member("Dim Hierarchy", "Dim"))))
.From(Mdx.Cube("Cube"))
.Where(Mdx.Tuple().With(
Mdx.Function("FILTER")
.WithParameters(Mdx.Member("Dim Hierarchy", "Dim", "Dim Key"))
.WithParameters(Mdx.Tuple().With(Mdx.Member("Dim Hierarchy", "Dim", "Dim Key")))));
//ASSERT
Assert.That(query.ToString(), Is.EqualTo(expectedQueryString));
}