mondrian.rolap
Class CacheControlTest

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

public class CacheControlTest
extends FoodMartTestCase

Unit-test for cache-flushing functionality.

Since:
Sep 27, 2006
Author:
jhyde

Field Summary
 
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
 
Constructor Summary
CacheControlTest()
          Creates a CacheControlTest.
CacheControlTest(String name)
          Creates a CacheControlTest with the given name.
 
Method Summary
(package private) static void assertContains(String pattern, String message)
          Asserts that a given string contains a given pattern.
static void flushCache(TestContext testContext)
          Flushes the entire contents of the cache.
(package private)  DiffRepository getDiffRepos()
          Returns the repository of result strings.
(package private)  CacheControl.CellRegion memberRegion(String uniqueName)
          Helper method, creates a region consisting of a single member, given its unique name (e.g.
 void testCreateCellRegion()
          Tests creation of a cell region against an abstract implementation of CacheControl.
 void testCrossjoin()
          Tests crossjoin of regions, CacheControl.createCrossjoinRegion(mondrian.olap.CacheControl.CellRegion...).
 void testFlush()
          Creates a cell region, runs a query, then flushes the cache.
 void testFlushNonPrimedContent()
          Test case for bug MONDRIAN-1077, "Cache flush for region that is not necessarily populated results in NullPointerException".
 void testMondrian1094()
           
 void testNegative()
          A number of negative tests, trying to do invalid things with cache flushing and getting errors.
 void testNormalize()
          Tests the algorithm which converts a cache region specification into normal form.
 void testNormalize2()
          Creates a cell region, runs a query, then flushes the cache.
 void testPartialFlush_2()
          This is a test for MONDRIAN-1120
 void testPartialFlush()
          Creates a partial cell region, runs a query, then flushes the cache.
 void testPartialFlushRange()
          Creates a partial cell region over a range, runs a query, then flushes the cache.
 
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, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CacheControlTest

public CacheControlTest()
Creates a CacheControlTest.


CacheControlTest

public CacheControlTest(String name)
Creates a CacheControlTest with the given name.

Method Detail

getDiffRepos

DiffRepository getDiffRepos()
Returns the repository of result strings.

Returns:
repository of result strings

flushCache

public static void flushCache(TestContext testContext)
Flushes the entire contents of the cache. Utility method used to ensure that cache control tests are starting with a blank page.

Parameters:
testContext - Test context

testCreateCellRegion

public void testCreateCellRegion()
Tests creation of a cell region against an abstract implementation of CacheControl.


testNormalize2

public void testNormalize2()
Creates a cell region, runs a query, then flushes the cache.


testFlush

public void testFlush()
Creates a cell region, runs a query, then flushes the cache.


testPartialFlush

public void testPartialFlush()
Creates a partial cell region, runs a query, then flushes the cache.


testPartialFlush_2

public void testPartialFlush_2()
                        throws Exception
This is a test for MONDRIAN-1120

SegmentCacheIndexImpl.intersects was not comparing the header column values to those of the cache region.

Throws:
Exception

testPartialFlushRange

public void testPartialFlushRange()
Creates a partial cell region over a range, runs a query, then flushes the cache.


assertContains

static void assertContains(String pattern,
                           String message)
Asserts that a given string contains a given pattern.

Parameters:
pattern - Pattern to find
message - String
Throws:
junit.framework.AssertionFailedError - if pattern is not found

testNegative

public void testNegative()
A number of negative tests, trying to do invalid things with cache flushing and getting errors.


testCrossjoin

public void testCrossjoin()
Tests crossjoin of regions, CacheControl.createCrossjoinRegion(mondrian.olap.CacheControl.CellRegion...).


memberRegion

CacheControl.CellRegion memberRegion(String uniqueName)
Helper method, creates a region consisting of a single member, given its unique name (e.g. "[Gender].[F]").


testNormalize

public void testNormalize()
Tests the algorithm which converts a cache region specification into normal form.


testFlushNonPrimedContent

public void testFlushNonPrimedContent()
                               throws Exception
Test case for bug MONDRIAN-1077, "Cache flush for region that is not necessarily populated results in NullPointerException".

Throws:
Exception

testMondrian1094

public void testMondrian1094()
                      throws Exception
Throws:
Exception

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