Package mondrian.xmla
Class XmlaBaseTestCase
- java.lang.Object
-
- TestCase
-
- mondrian.test.FoodMartTestCase
-
- mondrian.xmla.XmlaBaseTestCase
-
- Direct Known Subclasses:
XmlaBasicTest
,XmlaCognosTest
,XmlaDimensionPropertiesTest
,XmlaErrorTest
,XmlaExcel2000Test
,XmlaExcel2007Test
,XmlaExcelXPTest
,XmlaMetaDataConstraintsTest
,XmlaTabularTest
public abstract class XmlaBaseTestCase extends FoodMartTestCase
Extends FoodMartTestCase, adding support for testing XMLA specific functionality, for example LAST_SCHEMA_UPDATE- Author:
- mkambol
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
XmlaBaseTestCase.Action
(package private) static class
XmlaBaseTestCase.CallBack
protected static class
XmlaBaseTestCase.XmlaRequestCallbackImpl
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CATALOG
static java.lang.String
CATALOG_NAME_PROP
static java.lang.String
CATALOG_PROP
protected java.util.SortedMap<java.lang.String,java.lang.String>
catalogNameUrls
static java.lang.String
CUBE_NAME_PROP
static java.lang.String
DATA_SOURCE_INFO
static java.lang.String
DATA_SOURCE_INFO_PROP
protected static boolean
DEBUG
static java.lang.String
FORMAT_MULTI_DIMENSIONAL
static java.lang.String
FORMAT_PROP
protected static java.lang.String
LAST_SCHEMA_UPDATE_DATE
static java.lang.String
LOCALE_PROP
static java.lang.String
REQUEST_TYPE_PROP
static java.lang.String
ROLE_PROP
static java.lang.String
SALES_CUBE
static java.lang.String
SESSION_ID_PROP
-
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
-
-
Constructor Summary
Constructors Constructor Description XmlaBaseTestCase()
XmlaBaseTestCase(java.lang.String name)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addDatasourceInfoResponseKey(java.util.Properties props)
void
doTest(java.lang.String requestType, java.util.Properties props, TestContext testContext)
Executes an XMLA request, reading the text of the request and the response from attributes ingetDiffRepos()
.void
doTest(java.lang.String requestType, java.util.Properties props, TestContext testContext, Role role)
void
doTest(java.util.Properties props)
protected void
doTest(MockHttpServletRequest req, java.util.Properties props)
void
doTestInline(java.lang.String requestType, java.lang.String requestText, java.lang.String respFileName, java.util.Properties props, TestContext testContext)
void
doTestInline(java.lang.String requestType, java.lang.String requestText, java.lang.String respFileName, java.util.Properties props, TestContext testContext, Role role)
protected void
doTests(java.lang.String soapRequestText, java.util.Properties props, TestContext testContext, java.lang.String connectString, java.util.Map<java.lang.String,java.lang.String> catalogNameUrls, org.w3c.dom.Document expectedDoc, XmlaConstants.Content content, Role role, boolean replace)
Executes a SOAP request.protected void
doTestsJson(java.lang.String soapRequestText, java.util.Properties props, TestContext testContext, java.lang.String connectString, java.util.Map<java.lang.String,java.lang.String> catalogNameUrls, java.lang.String expectedStr, XmlaConstants.Content content, Role role)
protected org.w3c.dom.Document
fileToDocument(java.lang.String filename, java.util.Properties props)
protected java.lang.String
fileToString(java.lang.String filename)
protected java.lang.String
filter(java.lang.String testCaseName, java.lang.String filename, java.lang.String content)
Filters the content of a test resource.protected java.lang.String
filterConnectString(java.lang.String original)
protected java.lang.String
generateExpectedString(java.util.Properties props)
protected java.lang.String
generateRequestString(java.util.Properties props)
protected java.util.Map<java.lang.String,java.lang.String>
getCatalogNameUrls(TestContext testContext)
protected java.util.Properties
getDefaultRequestProperties(java.lang.String requestType)
protected abstract DiffRepository
getDiffRepos()
protected Servlet
getServlet(TestContext testContext)
protected abstract java.lang.Class<? extends XmlaRequestCallback>
getServletCallbackClass()
protected static java.lang.String
getSessionId(java.lang.String name, XmlaBaseTestCase.Action action)
protected abstract java.lang.String
getSessionId(XmlaBaseTestCase.Action action)
Creates, retrieves or clears the session id for this test.protected void
helperTest(boolean doSessionId)
protected void
helperTestExpect(boolean doSessionId)
static java.lang.String
maskVersion(java.lang.String str)
Masks Mondrian's version number from a string.protected org.w3c.dom.Document
replaceLastSchemaUpdateDate(org.w3c.dom.Document doc)
protected void
tearDown()
protected void
validate(byte[] bytes, org.w3c.dom.Document expectedDoc, TestContext testContext, boolean replace, boolean validate)
-
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, verifySameNativeAndNot, warehouseMembersCanadaMexicoUsa
-
-
-
-
Field Detail
-
LAST_SCHEMA_UPDATE_DATE
protected static final java.lang.String LAST_SCHEMA_UPDATE_DATE
- See Also:
- Constant Field Values
-
catalogNameUrls
protected java.util.SortedMap<java.lang.String,java.lang.String> catalogNameUrls
-
SESSION_ID_PROP
public static final java.lang.String SESSION_ID_PROP
- See Also:
- Constant Field Values
-
REQUEST_TYPE_PROP
public static final java.lang.String REQUEST_TYPE_PROP
- See Also:
- Constant Field Values
-
DATA_SOURCE_INFO_PROP
public static final java.lang.String DATA_SOURCE_INFO_PROP
- See Also:
- Constant Field Values
-
DATA_SOURCE_INFO
public static final java.lang.String DATA_SOURCE_INFO
- See Also:
- Constant Field Values
-
CATALOG_PROP
public static final java.lang.String CATALOG_PROP
- See Also:
- Constant Field Values
-
CATALOG_NAME_PROP
public static final java.lang.String CATALOG_NAME_PROP
- See Also:
- Constant Field Values
-
CATALOG
public static final java.lang.String CATALOG
- See Also:
- Constant Field Values
-
CUBE_NAME_PROP
public static final java.lang.String CUBE_NAME_PROP
- See Also:
- Constant Field Values
-
SALES_CUBE
public static final java.lang.String SALES_CUBE
- See Also:
- Constant Field Values
-
FORMAT_PROP
public static final java.lang.String FORMAT_PROP
- See Also:
- Constant Field Values
-
FORMAT_MULTI_DIMENSIONAL
public static final java.lang.String FORMAT_MULTI_DIMENSIONAL
- See Also:
- Constant Field Values
-
ROLE_PROP
public static final java.lang.String ROLE_PROP
- See Also:
- Constant Field Values
-
LOCALE_PROP
public static final java.lang.String LOCALE_PROP
- See Also:
- Constant Field Values
-
DEBUG
protected static final boolean DEBUG
- See Also:
- Constant Field Values
-
-
Method Detail
-
tearDown
protected void tearDown() throws java.lang.Exception
- Overrides:
tearDown
in classFoodMartTestCase
- Throws:
java.lang.Exception
-
generateExpectedString
protected java.lang.String generateExpectedString(java.util.Properties props) throws java.lang.Exception
- Throws:
java.lang.Exception
-
generateRequestString
protected java.lang.String generateRequestString(java.util.Properties props) throws java.lang.Exception
- Throws:
java.lang.Exception
-
validate
protected void validate(byte[] bytes, org.w3c.dom.Document expectedDoc, TestContext testContext, boolean replace, boolean validate) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doTest
public void doTest(java.util.Properties props) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doTest
protected void doTest(MockHttpServletRequest req, java.util.Properties props) throws java.lang.Exception
- Throws:
java.lang.Exception
-
helperTestExpect
protected void helperTestExpect(boolean doSessionId)
-
helperTest
protected void helperTest(boolean doSessionId)
-
addDatasourceInfoResponseKey
protected void addDatasourceInfoResponseKey(java.util.Properties props)
-
getDiffRepos
protected abstract DiffRepository getDiffRepos()
-
fileToString
protected java.lang.String fileToString(java.lang.String filename) throws java.lang.Exception
- Throws:
java.lang.Exception
-
replaceLastSchemaUpdateDate
protected org.w3c.dom.Document replaceLastSchemaUpdateDate(org.w3c.dom.Document doc)
-
getCatalogNameUrls
protected java.util.Map<java.lang.String,java.lang.String> getCatalogNameUrls(TestContext testContext)
-
getServlet
protected Servlet getServlet(TestContext testContext) throws java.io.IOException, ServletException, org.xml.sax.SAXException
- Throws:
java.io.IOException
ServletException
org.xml.sax.SAXException
-
filterConnectString
protected java.lang.String filterConnectString(java.lang.String original)
-
getServletCallbackClass
protected abstract java.lang.Class<? extends XmlaRequestCallback> getServletCallbackClass()
-
getDefaultRequestProperties
protected java.util.Properties getDefaultRequestProperties(java.lang.String requestType)
-
fileToDocument
protected org.w3c.dom.Document fileToDocument(java.lang.String filename, java.util.Properties props) throws java.io.IOException, org.xml.sax.SAXException
- Throws:
java.io.IOException
org.xml.sax.SAXException
-
filter
protected java.lang.String filter(java.lang.String testCaseName, java.lang.String filename, java.lang.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(java.lang.String requestType, java.util.Properties props, TestContext testContext) throws java.lang.Exception
Executes an XMLA request, reading the text of the request and the response from attributes ingetDiffRepos()
.- Parameters:
requestType
- Request type: "DISCOVER_DATASOURCES", "EXECUTE", etc.props
- Properties for requesttestContext
- Test context- Throws:
java.lang.Exception
- on error
-
doTest
public void doTest(java.lang.String requestType, java.util.Properties props, TestContext testContext, Role role) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doTestInline
public void doTestInline(java.lang.String requestType, java.lang.String requestText, java.lang.String respFileName, java.util.Properties props, TestContext testContext) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doTestInline
public void doTestInline(java.lang.String requestType, java.lang.String requestText, java.lang.String respFileName, java.util.Properties props, TestContext testContext, Role role) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doTests
protected void doTests(java.lang.String soapRequestText, java.util.Properties props, TestContext testContext, java.lang.String connectString, java.util.Map<java.lang.String,java.lang.String> catalogNameUrls, org.w3c.dom.Document expectedDoc, XmlaConstants.Content content, Role role, boolean replace) throws java.lang.Exception
Executes a SOAP request.- Parameters:
soapRequestText
- SOAP requestprops
- Name/value pairs to substitute in the requesttestContext
- Test contextconnectString
- Connect stringcatalogNameUrls
- Map from catalog names to URLexpectedDoc
- Expected SOAP outputcontent
- Content typerole
- Role in which to execute query, or nullreplace
- Whether to generate a replacement reference log into TestName.log.xml if there is an exception. If you are running the same request with different content types and the same reference log, you should passtrue
for the content type that has the most information (generallyXmlaConstants.Content.SchemaData
)- Throws:
java.lang.Exception
- on error
-
doTestsJson
protected void doTestsJson(java.lang.String soapRequestText, java.util.Properties props, TestContext testContext, java.lang.String connectString, java.util.Map<java.lang.String,java.lang.String> catalogNameUrls, java.lang.String expectedStr, XmlaConstants.Content content, Role role) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getSessionId
protected abstract java.lang.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 java.lang.String getSessionId(java.lang.String name, XmlaBaseTestCase.Action action)
-
maskVersion
public static java.lang.String maskVersion(java.lang.String str)
Masks Mondrian's version number from a string. Note that this method does a mostly blind replacement of the version string and may replace strings that just happen to have the same sequence.- Parameters:
str
- String- Returns:
- String with each occurrence of mondrian's version number (e.g. "2.3.0.0") replaced with "${mondrianVersion}"
-
-