mondrian.xmla
Class XmlaBaseTestCase

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by mondrian.test.FoodMartTestCase
              extended by mondrian.xmla.XmlaBaseTestCase
All Implemented Interfaces:
Test
Direct Known Subclasses:
XmlaBasicTest, XmlaCognosTest, XmlaErrorTest, XmlaExcel2000Test, XmlaExcelXPTest, XmlaTabularTest

public abstract class XmlaBaseTestCase
extends FoodMartTestCase

Extends FoodMartTestCase, adding support for testing XMLA specific functionality, for example LAST_SCHEMA_UPDATE

Version:
$Id: //open/mondrian/testsrc/main/mondrian/xmla/XmlaBaseTestCase.java#19 $
Author:
mkambol

Nested Class Summary
(package private) static class XmlaBaseTestCase.Action
           
(package private) static class XmlaBaseTestCase.CallBack
           
 
Field Summary
static String CATALOG
           
static String CATALOG_NAME_PROP
           
static String CATALOG_PROP
           
protected  SortedMap<String,String> catalogNameUrls
           
static String CUBE_NAME_PROP
           
static String DATA_SOURCE_INFO
           
static String DATA_SOURCE_INFO_PROP
           
static String FORMAT_MULTI_DIMENSIONAL
           
static String FORMAT_PROP
           
static String HR_CUBE
           
protected static String LAST_SCHEMA_UPDATE_DATE
           
protected static String LAST_SCHEMA_UPDATE_DATE_PROP
           
static String REQUEST_TYPE_PROP
           
static String SALES_CUBE
           
static String SESSION_ID_PROP
           
 
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
 
Constructor Summary
XmlaBaseTestCase()
           
XmlaBaseTestCase(String name)
           
 
Method Summary
protected  void clearServlet()
           
 void doTest(String requestType, Properties props, TestContext testContext)
          Executes an XMLA request, reading the text of the request and the response from attributes in getDiffRepos().
 void doTest(String requestType, Properties props, TestContext testContext, Role role)
           
 void doTestInline(String requestType, String requestText, String respFileName, Properties props, TestContext testContext)
           
 void doTestInline(String requestType, String requestText, String respFileName, Properties props, TestContext testContext, Role role)
           
protected  void doTests(String soapRequestText, Properties props, TestContext testContext, String soapResponseText, String connectString, Map<String,String> catalogNameUrls, Document expectedDoc, String content, Role role)
           
protected  Document fileToDocument(String filename)
           
protected  String fileToString(String filename)
           
protected  String filter(String testCaseName, String filename, String content)
          Filters the content of a test resource.
protected  Map<String,String> getCatalogNameUrls(TestContext testContext)
           
protected  Properties getDefaultRequestProperties(String requestType)
           
protected abstract  DiffRepository getDiffRepos()
           
protected  Servlet getServlet(TestContext testContext)
           
protected abstract  Class<? extends XmlaRequestCallback> getServletCallbackClass()
           
protected static String getSessionId(String name, XmlaBaseTestCase.Action action)
           
protected abstract  String getSessionId(XmlaBaseTestCase.Action action)
          Creates, retrieves or clears the session id for this test.
protected  Document replaceLastSchemaUpdateDate(Document doc)
           
 
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
 

Field Detail

LAST_SCHEMA_UPDATE_DATE_PROP

protected static final String LAST_SCHEMA_UPDATE_DATE_PROP
See Also:
Constant Field Values

LAST_SCHEMA_UPDATE_DATE

protected static final String LAST_SCHEMA_UPDATE_DATE
See Also:
Constant Field Values

catalogNameUrls

protected SortedMap<String,String> catalogNameUrls

SESSION_ID_PROP

public static final String SESSION_ID_PROP
See Also:
Constant Field Values

REQUEST_TYPE_PROP

public static final String REQUEST_TYPE_PROP
See Also:
Constant Field Values

DATA_SOURCE_INFO_PROP

public static final String DATA_SOURCE_INFO_PROP
See Also:
Constant Field Values

DATA_SOURCE_INFO

public static final String DATA_SOURCE_INFO
See Also:
Constant Field Values

CATALOG_PROP

public static final String CATALOG_PROP
See Also:
Constant Field Values

CATALOG_NAME_PROP

public static final String CATALOG_NAME_PROP
See Also:
Constant Field Values

CATALOG

public static final String CATALOG
See Also:
Constant Field Values

CUBE_NAME_PROP

public static final String CUBE_NAME_PROP
See Also:
Constant Field Values

SALES_CUBE

public static final String SALES_CUBE
See Also:
Constant Field Values

HR_CUBE

public static final String HR_CUBE
See Also:
Constant Field Values

FORMAT_PROP

public static final String FORMAT_PROP
See Also:
Constant Field Values

FORMAT_MULTI_DIMENSIONAL

public static final String FORMAT_MULTI_DIMENSIONAL
See Also:
Constant Field Values
Constructor Detail

XmlaBaseTestCase

public XmlaBaseTestCase()

XmlaBaseTestCase

public XmlaBaseTestCase(String name)
Method Detail

getDiffRepos

protected abstract DiffRepository getDiffRepos()

fileToString

protected String fileToString(String filename)
                       throws Exception
Throws:
Exception

replaceLastSchemaUpdateDate

protected Document replaceLastSchemaUpdateDate(Document doc)

getCatalogNameUrls

protected Map<String,String> getCatalogNameUrls(TestContext testContext)

getServlet

protected Servlet getServlet(TestContext testContext)
                      throws IOException,
                             ServletException,
                             SAXException
Throws:
IOException
ServletException
SAXException

clearServlet

protected void clearServlet()

getServletCallbackClass

protected abstract Class<? extends XmlaRequestCallback> getServletCallbackClass()

getDefaultRequestProperties

protected Properties getDefaultRequestProperties(String requestType)

fileToDocument

protected Document fileToDocument(String filename)
                           throws IOException,
                                  SAXException
Throws:
IOException
SAXException

filter

protected String filter(String testCaseName,
                        String filename,
                        String content)
Filters the content of a test resource. The default implementation returns the content unchanged, but a derived class might override this method to change the content.

Parameters:
testCaseName - Name of current test case, e.g. "testFoo"
filename - Name of requested content, e.g. "${request}"
content - Content
Returns:
Modified content

doTest

public void doTest(String requestType,
                   Properties props,
                   TestContext testContext)
            throws Exception
Executes an XMLA request, reading the text of the request and the response from attributes in getDiffRepos().

Parameters:
requestType - Request type: "DISCOVER_DATASOURCES", "EXECUTE", etc.
props - Properties for request
testContext - Test context
Throws:
Exception

doTest

public void doTest(String requestType,
                   Properties props,
                   TestContext testContext,
                   Role role)
            throws Exception
Throws:
Exception

doTestInline

public void doTestInline(String requestType,
                         String requestText,
                         String respFileName,
                         Properties props,
                         TestContext testContext)
                  throws Exception
Throws:
Exception

doTestInline

public void doTestInline(String requestType,
                         String requestText,
                         String respFileName,
                         Properties props,
                         TestContext testContext,
                         Role role)
                  throws Exception
Throws:
Exception

doTests

protected void doTests(String soapRequestText,
                       Properties props,
                       TestContext testContext,
                       String soapResponseText,
                       String connectString,
                       Map<String,String> catalogNameUrls,
                       Document expectedDoc,
                       String content,
                       Role role)
                throws Exception
Throws:
Exception

getSessionId

protected abstract String getSessionId(XmlaBaseTestCase.Action action)
Creates, retrieves or clears the session id for this test.

Parameters:
action - Action to perform
Returns:
Session id for create, query; null for clear

getSessionId

protected static String getSessionId(String name,
                                     XmlaBaseTestCase.Action action)

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