Search in sources :

Example 26 with Member

use of mondrian.olap.Member in project mondrian by pentaho.

the class SqlConstraintUtilsTest method makeParenthesesExprMember.

private Member makeParenthesesExprMember(Evaluator evaluator, Member parenthesesInnerMember, String toString) {
    Member member = Mockito.mock(Member.class);
    Mockito.doReturn("mock[" + toString + "]").when(member).toString();
    Mockito.doReturn(true).when(member).isCalculated();
    Exp parenthesesArg = new MemberExpr(parenthesesInnerMember);
    FunDef funDef = new ParenthesesFunDef(Category.Member);
    Exp[] args = new Exp[] { parenthesesArg };
    Type returnType = new DecimalType(1, 1);
    Exp memberExp = new ResolvedFunCall(funDef, args, returnType);
    Mockito.doReturn(memberExp).when(member).getExpression();
    Assert.assertEquals(true, member.isCalculated());
    Assert.assertEquals(true, SqlConstraintUtils.isSupportedCalculatedMember(member));
    return member;
}
Also used : FunDef(mondrian.olap.FunDef) ParenthesesFunDef(mondrian.olap.fun.ParenthesesFunDef) AggregateFunDef(mondrian.olap.fun.AggregateFunDef) NullFunDef(mondrian.olap.fun.CrossJoinTest.NullFunDef) NullType(mondrian.olap.type.NullType) DecimalType(mondrian.olap.type.DecimalType) TupleType(mondrian.olap.type.TupleType) Type(mondrian.olap.type.Type) MemberExpr(mondrian.mdx.MemberExpr) ParenthesesFunDef(mondrian.olap.fun.ParenthesesFunDef) DecimalType(mondrian.olap.type.DecimalType) ResolvedFunCall(mondrian.mdx.ResolvedFunCall) Exp(mondrian.olap.Exp) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember)

Example 27 with Member

use of mondrian.olap.Member in project mondrian by pentaho.

the class SqlConstraintUtilsTest method testRemoveCalculatedAndDefaultMembers.

public void testRemoveCalculatedAndDefaultMembers() {
    Hierarchy hierarchy = mock(Hierarchy.class);
    // create members
    List<Member> members = new ArrayList<Member>();
    // 0:passed
    members.add(createMemberMock(false, false, hierarchy));
    // 1:not passed
    members.add(createMemberMock(true, false, hierarchy));
    // 2:passed
    members.add(createMemberMock(true, true, hierarchy));
    // 3:passed
    members.add(createMemberMock(false, true, hierarchy));
    // 4:default,
    members.add(createMemberMock(false, true, hierarchy));
    // not passed
    // 5:passed
    members.add(createMemberMock(false, false, hierarchy));
    // 6:not passed
    members.add(createMemberMock(true, false, hierarchy));
    when(hierarchy.getDefaultMember()).thenReturn(members.get(4));
    List<Member> newMembers = SqlConstraintUtils.removeCalculatedAndDefaultMembers(members);
    assertEquals(4, newMembers.size());
    assertTrue(newMembers.contains(members.get(0)));
    assertTrue(newMembers.contains(members.get(2)));
    assertTrue(newMembers.contains(members.get(3)));
    assertTrue(newMembers.contains(members.get(5)));
}
Also used : Hierarchy(mondrian.olap.Hierarchy) ArrayList(java.util.ArrayList) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember)

Example 28 with Member

use of mondrian.olap.Member in project mondrian by pentaho.

the class SqlConstraintUtilsTest method makeMemberExprMember.

private Member makeMemberExprMember(Member resultMember) {
    Exp memberExp = new MemberExpr(resultMember);
    Member member = Mockito.mock(Member.class);
    Mockito.doReturn(true).when(member).isCalculated();
    Mockito.doReturn(memberExp).when(member).getExpression();
    return member;
}
Also used : MemberExpr(mondrian.mdx.MemberExpr) Exp(mondrian.olap.Exp) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember)

Example 29 with Member

use of mondrian.olap.Member in project mondrian by pentaho.

the class SqlConstraintUtilsTest method testGetSetFromCalculatedMember.

/**
 * calculation test for disjoint tuples
 */
public void testGetSetFromCalculatedMember() {
    List<Member> listColumn1 = new ArrayList<Member>();
    List<Member> listColumn2 = new ArrayList<Member>();
    listColumn1.add(new TestMember("elem1_col1"));
    listColumn1.add(new TestMember("elem2_col1"));
    listColumn2.add(new TestMember("elem1_col2"));
    listColumn2.add(new TestMember("elem2_col2"));
    final List<List<Member>> table = new ArrayList<List<Member>>();
    table.add(listColumn1);
    table.add(listColumn2);
    List<Member> arrayRes = getCalculatedMember(table, 1).getMembers();
    assertEquals(arrayRes.size(), 4);
    assertEquals(listColumn1.get(0), arrayRes.get(0));
    assertEquals(listColumn1.get(1), arrayRes.get(1));
    assertEquals(listColumn2.get(0), arrayRes.get(2));
    assertEquals(listColumn2.get(1), arrayRes.get(3));
}
Also used : TestMember(mondrian.olap.fun.TestMember) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) UnaryTupleList(mondrian.calc.impl.UnaryTupleList) TupleList(mondrian.calc.TupleList) List(java.util.List) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember)

Example 30 with Member

use of mondrian.olap.Member in project mondrian by pentaho.

the class SqlConstraintUtilsTest method testReplaceCompoundSlicerPlaceholder.

public void testReplaceCompoundSlicerPlaceholder() {
    final TestContext testContext = TestContext.instance();
    final Connection connection = testContext.getConnection();
    final String queryText = "SELECT {[Measures].[Customer Count]} ON 0 " + "FROM [Sales] " + "WHERE [Time].[1997]";
    final Query query = connection.parseQuery(queryText);
    final QueryAxis querySlicerAxis = query.getSlicerAxis();
    final Member slicerMember = ((MemberExpr) querySlicerAxis.getSet()).getMember();
    final RolapHierarchy slicerHierarchy = ((RolapCube) query.getCube()).getTimeHierarchy(null);
    final Execution execution = new Execution(query.getStatement(), 0L);
    final RolapEvaluatorRoot rolapEvaluatorRoot = new RolapEvaluatorRoot(execution);
    final RolapEvaluator rolapEvaluator = new RolapEvaluator(rolapEvaluatorRoot);
    final Member expectedMember = slicerMember;
    rolapEvaluator.setSlicerContext(expectedMember);
    RolapResult.CompoundSlicerRolapMember placeHolderMember = Mockito.mock(RolapResult.CompoundSlicerRolapMember.class);
    Mockito.doReturn(slicerHierarchy).when(placeHolderMember).getHierarchy();
    // tested call
    Member r = SqlConstraintUtils.replaceCompoundSlicerPlaceholder(placeHolderMember, rolapEvaluator);
    // test
    Assert.assertSame(expectedMember, r);
}
Also used : Query(mondrian.olap.Query) TestContext(mondrian.test.TestContext) Connection(mondrian.olap.Connection) Execution(mondrian.server.Execution) MemberExpr(mondrian.mdx.MemberExpr) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember) QueryAxis(mondrian.olap.QueryAxis)

Aggregations

Member (mondrian.olap.Member)60 ArrayList (java.util.ArrayList)20 TestMember (mondrian.olap.fun.TestMember)20 List (java.util.List)15 LimitedRollupMember (mondrian.rolap.RolapHierarchy.LimitedRollupMember)13 Evaluator (mondrian.olap.Evaluator)11 MultiCardinalityDefaultMember (mondrian.rolap.RestrictedMemberReader.MultiCardinalityDefaultMember)11 SetEvaluator (mondrian.olap.Evaluator.SetEvaluator)8 Hierarchy (mondrian.olap.Hierarchy)8 TupleList (mondrian.calc.TupleList)7 Axis (mondrian.olap.Axis)7 Exp (mondrian.olap.Exp)7 Level (mondrian.olap.Level)7 HashMap (java.util.HashMap)6 LinkedHashMap (java.util.LinkedHashMap)6 HashSet (java.util.HashSet)5 UnaryTupleList (mondrian.calc.impl.UnaryTupleList)5 MemberExpr (mondrian.mdx.MemberExpr)5 LinkedHashSet (java.util.LinkedHashSet)4 ResolvedFunCall (mondrian.mdx.ResolvedFunCall)4