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 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
protected static boolean
DEBUG
static String
FORMAT_MULTI_DIMENSIONAL
static String
FORMAT_PROP
protected static String
LAST_SCHEMA_UPDATE_DATE
static String
LOCALE_PROP
static String
REQUEST_TYPE_PROP
static String
ROLE_PROP
static String
SALES_CUBE
static String
SESSION_ID_PROP
-
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
-
-
Constructor Summary
Constructors Constructor Description XmlaBaseTestCase()
XmlaBaseTestCase(String name)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addDatasourceInfoResponseKey(Properties props)
void
doTest(String requestType, Properties props, TestContext testContext)
Executes an XMLA request, reading the text of the request and the response from attributes ingetDiffRepos()
.void
doTest(String requestType, Properties props, TestContext testContext, Role role)
void
doTest(Properties props)
protected void
doTest(MockHttpServletRequest req, Properties props)
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 connectString, Map<String,String> catalogNameUrls, Document expectedDoc, XmlaConstants.Content content, Role role, boolean replace)
Executes a SOAP request.protected void
doTestsJson(String soapRequestText, Properties props, TestContext testContext, String connectString, Map<String,String> catalogNameUrls, String expectedStr, XmlaConstants.Content content, Role role)
protected Document
fileToDocument(String filename, Properties props)
protected String
fileToString(String filename)
protected String
filter(String testCaseName, String filename, String content)
Filters the content of a test resource.protected String
filterConnectString(String original)
protected String
generateExpectedString(Properties props)
protected String
generateRequestString(Properties props)
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 void
helperTest(boolean doSessionId)
protected void
helperTestExpect(boolean doSessionId)
static String
maskVersion(String str)
Masks Mondrian's version number from a string.protected Document
replaceLastSchemaUpdateDate(Document doc)
protected void
tearDown()
protected void
validate(byte[] bytes, 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 String LAST_SCHEMA_UPDATE_DATE
- See Also:
- Constant Field Values
-
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
-
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
-
ROLE_PROP
public static final String ROLE_PROP
- See Also:
- Constant Field Values
-
LOCALE_PROP
public static final String LOCALE_PROP
- See Also:
- Constant Field Values
-
DEBUG
protected static final boolean DEBUG
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
XmlaBaseTestCase
public XmlaBaseTestCase()
-
XmlaBaseTestCase
public XmlaBaseTestCase(String name)
-
-
Method Detail
-
tearDown
protected void tearDown() throws Exception
- Overrides:
tearDown
in classFoodMartTestCase
- Throws:
Exception
-
generateExpectedString
protected String generateExpectedString(Properties props) throws Exception
- Throws:
Exception
-
generateRequestString
protected String generateRequestString(Properties props) throws Exception
- Throws:
Exception
-
validate
protected void validate(byte[] bytes, Document expectedDoc, TestContext testContext, boolean replace, boolean validate) throws Exception
- Throws:
Exception
-
doTest
public void doTest(Properties props) throws Exception
- Throws:
Exception
-
doTest
protected void doTest(MockHttpServletRequest req, Properties props) throws Exception
- Throws:
Exception
-
helperTestExpect
protected void helperTestExpect(boolean doSessionId)
-
helperTest
protected void helperTest(boolean doSessionId)
-
addDatasourceInfoResponseKey
protected void addDatasourceInfoResponseKey(Properties props)
-
getDiffRepos
protected abstract DiffRepository getDiffRepos()
-
getCatalogNameUrls
protected Map<String,String> getCatalogNameUrls(TestContext testContext)
-
getServlet
protected Servlet getServlet(TestContext testContext) throws IOException, ServletException, SAXException
- Throws:
IOException
ServletException
SAXException
-
getServletCallbackClass
protected abstract Class<? extends XmlaRequestCallback> getServletCallbackClass()
-
getDefaultRequestProperties
protected Properties getDefaultRequestProperties(String requestType)
-
fileToDocument
protected Document fileToDocument(String filename, Properties props) 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 ingetDiffRepos()
.- Parameters:
requestType
- Request type: "DISCOVER_DATASOURCES", "EXECUTE", etc.props
- Properties for requesttestContext
- Test context- Throws:
Exception
- on error
-
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 connectString, Map<String,String> catalogNameUrls, Document expectedDoc, XmlaConstants.Content content, Role role, boolean replace) throws 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:
Exception
- on error
-
doTestsJson
protected void doTestsJson(String soapRequestText, Properties props, TestContext testContext, String connectString, Map<String,String> catalogNameUrls, String expectedStr, XmlaConstants.Content 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)
-
maskVersion
public static String maskVersion(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}"
-
-