xmlBlaster 2.2.0 API

org.xmlBlaster.test.contrib.replication
Class TestDbSpecific

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.custommonkey.xmlunit.XMLTestCase
              extended by org.xmlBlaster.test.contrib.replication.TestDbSpecific
All Implemented Interfaces:
java.util.EventListener, junit.framework.Test, org.custommonkey.xmlunit.XMLConstants, org.custommonkey.xmlunit.XSLTConstants, I_ChangePublisher, I_ContribPlugin

public class TestDbSpecific
extends org.custommonkey.xmlunit.XMLTestCase
implements I_ChangePublisher

Test basic functionality which is specific for each database implementation. There is a predefined set of default properties which are specific to the database you use. For instance if you want to use the predefined settings for oracle use:

 java -Ddb=oracle .....
 or if you want to use postgres:
 java -Ddb=postgres
 

What does this test ?


To run most of the tests you need to have a database (for example Postgres or Oracle).

The connection configuration (url, password etc.) is configured as JVM property or in #createTest(I_Info, Map) and setUpDbPool(I_Info)

Author:
Michele Laghi

Field Summary
private static boolean checked
           
private static java.lang.String currentMethod
           
private  DbMetaHelper dbHelper
           
private static I_DbPool dbPool
           
private static I_DbSpecific dbSpecific
           
private static boolean doCheck
           
private static I_Info info
           
private static java.util.logging.Logger log
           
private  java.lang.String replPrefix
           
private static SpecificHelper specificHelper
           
private  java.lang.String tableName
           
 
Fields inherited from interface org.custommonkey.xmlunit.XSLTConstants
XSLT_END, XSLT_IDENTITY_TEMPLATE, XSLT_START, XSLT_STRIP_WHITESPACE, XSLT_XML_OUTPUT_NOINDENT
 
Fields inherited from interface org.custommonkey.xmlunit.XMLConstants
CLOSE_NODE, END_CDATA, END_COMMENT, END_PROCESSING_INSTRUCTION, OPEN_END_NODE, OPEN_START_NODE, START_CDATA, START_COMMENT, START_DOCTYPE, START_PROCESSING_INSTRUCTION, XML_DECLARATION, XMLNS_PREFIX, XPATH_ATTRIBUTE_IDENTIFIER, XPATH_CHARACTER_NODE_IDENTIFIER, XPATH_COMMENT_IDENTIFIER, XPATH_NODE_INDEX_END, XPATH_NODE_INDEX_START, XPATH_PROCESSING_INSTRUCTION_IDENTIFIER, XPATH_SEPARATOR
 
Constructor Summary
TestDbSpecific()
          Default ctor.
TestDbSpecific(java.lang.String arg0)
          Constructor for TestDbSpecific.
 
Method Summary
 XBSession getJmsSession()
          Only used in replication, can return null if not used.
 java.util.Set getUsedPropertyKeys()
          Gets all property keys which may be used by this object.
 void init(I_Info info)
          After creation this method is called.
static void main(java.lang.String[] args)
          Start the test.
 java.lang.String publish(java.lang.String changeKey, byte[] message, java.util.Map attrMap)
          This method gets invoked when a change is detected.
 boolean registerAlertListener(I_Update momCb, java.util.Map attrs)
          Register for alerts when the data source has changed.
protected  void setUp()
          Configure database access.
private  DbPool setUpDbPool(I_Info info)
          Creates a database pooling instance and puts it to info.
private  I_DbSpecific setUpDbSpecific(I_Info info, java.lang.String dbSpecificName)
          Creates an I_DbSpecific object.
 void shutdown()
          Cleanup resources.
protected  void tearDown()
           
 void testCheckSequenceForCreation()
          This method tests all the sql statements.
 void testCheckTableForCreation()
          This method tests all the sql statements.
 void testCreateTablesWithDifferentTypes()
          This method tests all the sql statements.
 void testGetObjectName()
           
 void testSchemaWipeout()
           
 
Methods inherited from class org.custommonkey.xmlunit.XMLTestCase
assertNodeTestPasses, assertNodeTestPasses, assertNotXpathExists, assertNotXpathExists, assertXMLEqual, assertXMLEqual, assertXMLEqual, assertXMLEqual, assertXMLEqual, assertXMLEqual, assertXMLEqual, assertXMLEqual, assertXMLEqual, assertXMLIdentical, assertXMLIdentical, assertXMLIdentical, assertXMLNotEqual, assertXMLNotEqual, assertXMLNotEqual, assertXMLNotEqual, assertXMLNotEqual, assertXMLNotEqual, assertXMLValid, assertXMLValid, assertXMLValid, assertXMLValid, assertXpathEvaluatesTo, assertXpathEvaluatesTo, assertXpathExists, assertXpathExists, assertXpathNotExists, assertXpathNotExists, assertXpathsEqual, assertXpathsEqual, assertXpathsEqual, assertXpathsEqual, assertXpathsNotEqual, assertXpathsNotEqual, assertXpathsNotEqual, assertXpathsNotEqual, assertXpathValuesEqual, assertXpathValuesEqual, assertXpathValuesEqual, assertXpathValuesEqual, assertXpathValuesNotEqual, assertXpathValuesNotEqual, assertXpathValuesNotEqual, assertXpathValuesNotEqual, compareXML, compareXML, compareXML, compareXML, compareXML, setControlParser, setIgnoreWhitespace, setTestParser
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, 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
 

Field Detail

log

private static java.util.logging.Logger log

info

private static I_Info info

dbPool

private static I_DbPool dbPool

dbSpecific

private static I_DbSpecific dbSpecific

currentMethod

private static java.lang.String currentMethod

doCheck

private static boolean doCheck

checked

private static boolean checked

dbHelper

private DbMetaHelper dbHelper

specificHelper

private static SpecificHelper specificHelper

replPrefix

private java.lang.String replPrefix

tableName

private java.lang.String tableName
Constructor Detail

TestDbSpecific

public TestDbSpecific()
Default ctor.


TestDbSpecific

public TestDbSpecific(java.lang.String arg0)
Constructor for TestDbSpecific.

Parameters:
arg0 -
Method Detail

main

public static void main(java.lang.String[] args)
Start the test.
 java -Ddb=oracle junit.swingui.TestRunner -noloading org.xmlBlaster.test.contrib.replication.TestDbSpecific
 

Parameters:
args - Command line settings

setUp

protected void setUp()
              throws java.lang.Exception
Configure database access.

Overrides:
setUp in class junit.framework.TestCase
Throws:
java.lang.Exception
See Also:
TestCase#setUp()

getUsedPropertyKeys

public java.util.Set getUsedPropertyKeys()
Description copied from interface: I_ContribPlugin
Gets all property keys which may be used by this object.

Specified by:
getUsedPropertyKeys in interface I_ContribPlugin
Returns:
See Also:
I_ContribPlugin.getUsedPropertyKeys()

init

public void init(I_Info info)
          throws java.lang.Exception
Description copied from interface: I_ChangePublisher
After creation this method is called. The plugin must register itself into global scope with info.setObject("org.xmlBlaster.contrib.dbwatcher.mom.I_ChangePublisher", this) to be available for others.

Specified by:
init in interface I_ChangePublisher
Specified by:
init in interface I_ContribPlugin
Parameters:
info - The configuration environment
Throws:
java.lang.Exception - MoM specific

publish

public java.lang.String publish(java.lang.String changeKey,
                                byte[] message,
                                java.util.Map attrMap)
                         throws java.lang.Exception
This method gets invoked when a change is detected. It will check that the message is parsed correctly. It does not check that the create statement is mapped correctly to xml.

Specified by:
publish in interface I_ChangePublisher
Parameters:
changeKey - Can be used to create the topic name
message - The message content to send
attrMap - An optional map with attributes or null
Returns:
A unique identifier of the sent message
Throws:
java.lang.Exception - On sending problems

registerAlertListener

public boolean registerAlertListener(I_Update momCb,
                                     java.util.Map attrs)
                              throws java.lang.Exception
Description copied from interface: I_ChangePublisher
Register for alerts when the data source has changed.

This funtionality is plugin depending, for example the xmlBlaster plugin has a configuration option to subscribe on a alert topic and listens if somebody publishes a message to it. If such a message arrives we trigger a new database poll.

Specified by:
registerAlertListener in interface I_ChangePublisher
Parameters:
momCb - The callback interface to receive the notification
attrs - extra parameters to pass for the registration. For example if one implementation wants to do a specific extra subscription it would pass the quality of service in the attributes.
Returns:
true if a notification is available (is configured)
Throws:
java.lang.Exception - The MoM specific exception

shutdown

public void shutdown()
Description copied from interface: I_ChangePublisher
Cleanup resources.

Can be called multiple times if instance is reused from different plugins.

Specified by:
shutdown in interface I_ChangePublisher
Specified by:
shutdown in interface I_ContribPlugin
See Also:
I_Plugin

setUpDbPool

private DbPool setUpDbPool(I_Info info)
Creates a database pooling instance and puts it to info.

Parameters:
info - The configuration
Returns:
The created pool

setUpDbSpecific

private I_DbSpecific setUpDbSpecific(I_Info info,
                                     java.lang.String dbSpecificName)
Creates an I_DbSpecific object.

Parameters:
info - The configuration.
dbSpecificName - the name of the class to instantiate. If null, a default is taken.
Returns:
The created I_DbSpecific object.

tearDown

protected void tearDown()
                 throws java.lang.Exception
Overrides:
tearDown in class junit.framework.TestCase
Throws:
java.lang.Exception

testCreateTablesWithDifferentTypes

public final void testCreateTablesWithDifferentTypes()
                                              throws java.lang.Exception
This method tests all the sql statements. It checks the creation statements for the different sql data types.

Throws:
java.lang.Exception - Any type is possible

testGetObjectName

public final void testGetObjectName()
                             throws java.lang.Exception
Throws:
java.lang.Exception - Any type is possible

testCheckTableForCreation

public final void testCheckTableForCreation()
                                     throws java.lang.Exception
This method tests all the sql statements. It checks the creation statements for the different sql data types.

Throws:
java.lang.Exception - Any type is possible

testCheckSequenceForCreation

public final void testCheckSequenceForCreation()
                                        throws java.lang.Exception
This method tests all the sql statements. It checks the creation statements for the different sql data types.

Throws:
java.lang.Exception - Any type is possible

testSchemaWipeout

public final void testSchemaWipeout()
                             throws java.lang.Exception
Throws:
java.lang.Exception

getJmsSession

public XBSession getJmsSession()
Description copied from interface: I_ChangePublisher
Only used in replication, can return null if not used.

Specified by:
getJmsSession in interface I_ChangePublisher
Returns:
See Also:
I_ChangePublisher.getJmsSession()

xmlBlaster 2.2.0 API

Copyright © 1999-2014 The xmlBlaster.org contributers.