use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method testExpandSupportedCalculatedMember_calculated_parentheses.
public void testExpandSupportedCalculatedMember_calculated_parentheses() {
Evaluator evaluator = Mockito.mock(Evaluator.class);
Member resultMember = Mockito.mock(Member.class);
Member member = this.makeParenthesesExprMember(evaluator, resultMember, "0");
// tested call
TupleConstraintStruct constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSupportedCalculatedMember(member, evaluator, constraint);
List<Member> r = constraint.getMembers();
// test
Assert.assertNotNull(r);
Assert.assertEquals(1, r.size());
Assert.assertSame(resultMember, r.get(0));
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method getCalculatedMember.
public TupleConstraintStruct getCalculatedMember(final List<List<Member>> table, int arity) {
Member memberMock = mock(Member.class);
Exp[] funCallArgExps = new Exp[0];
ResolvedFunCall funCallArgMock = new ResolvedFunCall(mock(FunDef.class), funCallArgExps, mock(TupleType.class));
Exp[] funCallExps = { funCallArgMock };
ResolvedFunCall funCallMock = new ResolvedFunCall(mock(FunDef.class), funCallExps, mock(TupleType.class));
when(memberMock.getExpression()).thenReturn(funCallMock);
Evaluator evaluatorMock = mock(Evaluator.class);
Evaluator.SetEvaluator setEvaluatorMock = mock(Evaluator.SetEvaluator.class);
TupleIterable tupleIterableMock = mock(TupleIterable.class);
when(tupleIterableMock.iterator()).thenReturn(table.iterator());
when(tupleIterableMock.getArity()).thenReturn(arity);
AbstractTupleCursor cursor = new AbstractTupleCursor(arity) {
Iterator<List<Member>> iterator = table.iterator();
List<Member> curList;
@Override
public boolean forward() {
boolean hasNext = iterator.hasNext();
if (hasNext) {
curList = iterator.next();
} else {
curList = null;
}
return hasNext;
}
@Override
public List<Member> current() {
return curList;
}
};
when(tupleIterableMock.tupleCursor()).thenReturn(cursor);
when(setEvaluatorMock.evaluateTupleIterable()).thenReturn(tupleIterableMock);
when(evaluatorMock.getSetEvaluator(eq(funCallArgMock), anyBoolean())).thenReturn(setEvaluatorMock);
TupleConstraintStruct constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSetFromCalculatedMember(evaluatorMock, memberMock, constraint);
return constraint;
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method testExpandSupportedCalculatedMember_calculated_unsupported.
public void testExpandSupportedCalculatedMember_calculated_unsupported() {
Evaluator evaluator = Mockito.mock(Evaluator.class);
Member member = makeUnsupportedCalculatedMember("0");
// tested call
TupleConstraintStruct constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSupportedCalculatedMember(member, evaluator, constraint);
List<Member> r = constraint.getMembers();
// test
Assert.assertNotNull(r);
Assert.assertEquals(1, r.size());
Assert.assertSame(member, r.get(0));
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method makeNoncalculatedMember.
private Member makeNoncalculatedMember(String toString) {
Member member = Mockito.mock(Member.class);
Assert.assertEquals(false, member.isCalculated());
Mockito.doReturn("mock[" + toString + "]").when(member).toString();
return member;
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method testExpandSupportedCalculatedMembers2.
// test with a placeholder member
public void testExpandSupportedCalculatedMembers2() {
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();
Member endMember0 = makeNoncalculatedMember("0");
// (0, placeholder)
Member[] argMembers = new Member[] { endMember0, placeHolderMember };
Member[] expectedMembers = new Member[] { endMember0, slicerMember };
Member[] expectedMembersOnDisjoin = new Member[] { endMember0 };
assertApartExpandSupportedCalculatedMembers("(0, placeholder)", expectedMembers, expectedMembersOnDisjoin, argMembers, rolapEvaluator);
}
Aggregations