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;
}
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)));
}
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;
}
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));
}
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);
}
Aggregations