mondrian.rolap
Class TestAggregationManager

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by mondrian.test.FoodMartTestCase
              extended by mondrian.rolap.BatchTestCase
                  extended by mondrian.rolap.TestAggregationManager
All Implemented Interfaces:
Test

public class TestAggregationManager
extends BatchTestCase

Unit test for AggregationManager.

Since:
21 March, 2002
Version:
$Id: //open/mondrian/testsrc/main/mondrian/rolap/TestAggregationManager.java#58 $
Author:
jhyde

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.rolap.BatchTestCase
BatchTestCase.Bomb, BatchTestCase.CellRequestConstraint, BatchTestCase.TestCase, BatchTestCase.TestListener
 
Field Summary
 
Fields inherited from class mondrian.rolap.BatchTestCase
cubeNameSales, fieldGender, fieldProductDepartment, fieldProductFamily, fieldValueProductDepartment, fieldValuesGender, fieldValuesProductFamily, fieldValuesYear, fieldYear, measureUnitSales, tableCustomer, tableProductClass, tableTime
 
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
 
Constructor Summary
TestAggregationManager()
           
TestAggregationManager(java.lang.String name)
           
 
Method Summary
 void testAggChildMembersOfLeaf()
          As testAggMembers(), but asks for children of a leaf level.
 void testAggMembers()
          Tests that an aggregate table is used to speed up a <Member>.Children expression.
 void testAggregatingTuples()
           
 void testCollapsedChildren()
          this test verifies the collapsed children code in SqlMemberSource
 void testColumnCadinalityCache()
          Test that once fetched, column cardinality can be shared between different queries using the same connection.
 void testCountDistinctAggMatch()
           
 void testCountDistinctAggMiss()
           
 void testCountDistinctBatchLoading()
           
 void testCountDistinctCannotRollup()
           
 void testCountDistinctRollup2()
          As above, but we rollup [Marital Status] but not [Gender].
 void testCountDistinctRollupAlongDim()
          Now, here's a funny thing.
 void testCountDistinctWithConstraintAggMiss()
           
 void testFemaleCustomerCount()
           
 void testFemaleCustomerCountWithConstraints()
           
 void testFemaleUnitSales()
           
 void testFemaleUnitSalesSql()
          Tests that a request for ([Measures].[Unit Sales], [Gender].[F]) generates the correct SQL.
 void testHierarchyInFactTable()
          If a hierarchy lives in the fact table, we should not generate a join.
 void testKeyExpressionCardinalityCache()
           
 void testMultipleMeasures()
          Test a batch containing multiple measures: (store_state=CA, gender=F, measure=[Unit Sales]) (store_state=CA, gender=M, measure=[Store Sales]) (store_state=OR, gender=M, measure=[Unit Sales])
 void testNonEmptyCrossJoinLoneAxis()
          Tests that a NonEmptyCrossJoin uses the measure referenced by the query (Store Sales) instead of the default measure (Unit Sales) in the case where the query only has one result axis.
 void testNoNullPtrInCellRequest()
          This test case tests for a null pointer that was being thrown inside of CellRequest.
 void testUniqueMembers()
          Tests that if a level is marked 'unique members', then its parent is not constrained.
 
Methods inherited from class mondrian.rolap.BatchTestCase
assertNative, assertNoQuerySql, assertNotNative, assertQuerySql, assertQuerySql, assertQuerySql, assertQuerySqlOrNot, assertRequestSql, checkNative, checkNative, checkNative, checkNotNative, checkNotNative, checkNotNative, createBatch, createBatch, createRequest, createRequest, createRequest, createRequest, dialectize, executeQuery, getCube, getFoodMartConnection, getGroupingSet, getMeasure, getRegistry, makeConstraintCountryState, makeConstraintProductFamilyDepartment, makeConstraintYearQuarterMonth
 
Methods inherited from class mondrian.test.FoodMartTestCase
allMember, assertAxisReturns, assertAxisThrows, assertBooleanExprReturns, assertExprReturns, assertExprThrows, assertQueriesReturnSimilarResults, assertQueryReturns, assertQueryThrows, assertSize, cubeByName, execute, executeExpr, executeQuery, executeSingletonAxis, genderMembersIncludingAll, getConnection, getDimensionWithName, getTestContext, getTestContext, isDefaultNullMemberRepresentation, isGroupingSetsSupported, member, productMembersPotScrubbersPotsAndPans, storeMembersCAAndOR, storeMembersUsaAndCanada, tearDown, warehouseMembersCanadaMexicoUsa
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, setUp, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TestAggregationManager

public TestAggregationManager(java.lang.String name)

TestAggregationManager

public TestAggregationManager()
Method Detail

testFemaleUnitSales

public void testFemaleUnitSales()

testFemaleCustomerCount

public void testFemaleCustomerCount()

testFemaleCustomerCountWithConstraints

public void testFemaleCustomerCountWithConstraints()

testFemaleUnitSalesSql

public void testFemaleUnitSalesSql()
Tests that a request for ([Measures].[Unit Sales], [Gender].[F]) generates the correct SQL.


testMultipleMeasures

public void testMultipleMeasures()
Test a batch containing multiple measures: (store_state=CA, gender=F, measure=[Unit Sales]) (store_state=CA, gender=M, measure=[Store Sales]) (store_state=OR, gender=M, measure=[Unit Sales])


testUniqueMembers

public void testUniqueMembers()
Tests that if a level is marked 'unique members', then its parent is not constrained.


testNonEmptyCrossJoinLoneAxis

public void testNonEmptyCrossJoinLoneAxis()
Tests that a NonEmptyCrossJoin uses the measure referenced by the query (Store Sales) instead of the default measure (Unit Sales) in the case where the query only has one result axis. The setup here is necessarily elaborate because the original bug was quite arbitrary.


testHierarchyInFactTable

public void testHierarchyInFactTable()
If a hierarchy lives in the fact table, we should not generate a join.


testCountDistinctAggMiss

public void testCountDistinctAggMiss()

testCountDistinctAggMatch

public void testCountDistinctAggMatch()

testCountDistinctCannotRollup

public void testCountDistinctCannotRollup()

testCountDistinctRollupAlongDim

public void testCountDistinctRollupAlongDim()
Now, here's a funny thing. Usually you can't roll up a distinct-count aggregate. But if you're rolling up along the dimension which the count is counting, it's OK. In this case, you know that every member can only belong to one group.


testCountDistinctRollup2

public void testCountDistinctRollup2()
As above, but we rollup [Marital Status] but not [Gender].


testCountDistinctBatchLoading

public void testCountDistinctBatchLoading()

testAggMembers

public void testAggMembers()
Tests that an aggregate table is used to speed up a <Member>.Children expression.


testAggChildMembersOfLeaf

public void testAggChildMembersOfLeaf()
As testAggMembers(), but asks for children of a leaf level. Rewrite using an aggregate table is not possible, so just check that it gets the right result.


testNoNullPtrInCellRequest

public void testNoNullPtrInCellRequest()
This test case tests for a null pointer that was being thrown inside of CellRequest.


testColumnCadinalityCache

public void testColumnCadinalityCache()
Test that once fetched, column cardinality can be shared between different queries using the same connection.

Test also that expressions with only table alias difference do not share cardinality result.


testKeyExpressionCardinalityCache

public void testKeyExpressionCardinalityCache()

testCountDistinctWithConstraintAggMiss

public void testCountDistinctWithConstraintAggMiss()

testAggregatingTuples

public void testAggregatingTuples()

testCollapsedChildren

public void testCollapsedChildren()
this test verifies the collapsed children code in SqlMemberSource


Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads