xmlBlaster 2.2.0 API

org.xmlBlaster.test.contrib.replication
Class TestSyncPart

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.TestSyncPart
All Implemented Interfaces:
java.util.EventListener, junit.framework.Test, org.custommonkey.xmlunit.XMLConstants, org.custommonkey.xmlunit.XSLTConstants, I_ChangePublisher, I_ContribPlugin

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

Tests the synchronous part of the replication, i.e. that an action as CREATE, DROP, ALTER, INSERT, DELETE, UPDATE are written in the repl_items table. Nothing else is tested here.

To run most of the tests you need to have a database (for example Postgres). Does not need xmlBlaster running.

Author:
Michele Laghi

Field Summary
private  DbMetaHelper dbHelper
           
private  I_DbSpecific dbSpecific
           
private  I_Info info
           
private static java.util.logging.Logger log
           
private  I_DbPool pool
           
private  java.lang.String replPrefix
           
private  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
TestSyncPart()
          Default ctor.
TestSyncPart(java.lang.String arg0)
          Constructor for TestSyncParts.
 
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)
          Send the message to the MoM.
 boolean registerAlertListener(I_Update momCb, java.util.Map attrs)
          Register for alerts when the data source has changed.
protected  void setUp()
          Configure database access.
 void shutdown()
          Cleanup resources.
protected  void tearDown()
           
 void testDateFormat()
           
 void testPerformAllOperationsOnTable()
           
 void testTableWithLongs()
           
 void testTimestampFormat()
           
 
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 I_Info info

pool

private I_DbPool pool

dbSpecific

private I_DbSpecific dbSpecific

dbHelper

private DbMetaHelper dbHelper

specificHelper

private SpecificHelper specificHelper

tableName

private java.lang.String tableName

replPrefix

private java.lang.String replPrefix
Constructor Detail

TestSyncPart

public TestSyncPart()
Default ctor.


TestSyncPart

public TestSyncPart(java.lang.String arg0)
Constructor for TestSyncParts.

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.TestSyncParts
 

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()

tearDown

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

testPerformAllOperationsOnTable

public final void testPerformAllOperationsOnTable()

testTableWithLongs

public final void testTableWithLongs()

testDateFormat

public final void testDateFormat()

testTimestampFormat

public final void testTimestampFormat()

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
Description copied from interface: I_ChangePublisher
Send the message to the MoM.

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

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.