xmlBlaster 2.1.0 API

org.xmlBlaster.test.qos
Class TestSubNoDup

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.xmlBlaster.test.qos.TestSubNoDup
All Implemented Interfaces:
junit.framework.Test, I_Callback

public class TestSubNoDup
extends junit.framework.TestCase
implements I_Callback

This client tests multiple subscribe() on same message oid and setting duplicateUpdates=false (requirement engine.qos.subscribe.duplicate).
The subscribe() should be recognized for the later arriving publish() but only one update should arrive. For example cluster slave nodes need this feature.

This client may be invoked multiple time on the same xmlBlaster server, as it cleans up everything after his tests are done.

Invoke examples:

    java junit.textui.TestRunner org.xmlBlaster.test.qos.TestSubNoDup
    java junit.swingui.TestRunner -noloading org.xmlBlaster.test.qos.TestSubNoDup
 

See Also:
duplicate subscribe requirement

Field Summary
private  java.lang.String contentMime
           
private  boolean duplicates
           
private  Global glob
           
private static java.util.logging.Logger log
           
private static java.lang.String ME
           
private  int numReceived
           
private  java.lang.String oidExact
           
private  java.lang.String publishOid
           
private  I_XmlBlasterAccess senderConnection
           
private  java.lang.String senderContent
           
private  java.lang.String subscribeId1
           
private  java.lang.String subscribeId2
           
private  java.lang.String subscribeId3
           
 
Constructor Summary
TestSubNoDup(Global glob, java.lang.String testName)
          Constructs the TestSubNoDup object.
 
Method Summary
private  void connect()
           
static void main(java.lang.String[] args)
          Deprecated. Use the TestRunner from the testsuite to run it:

   java -Djava.compiler= junit.textui.TestRunner org.xmlBlaster.test.qos.TestSubNoDup
 void publish()
          TEST: Construct a message and publish it.
protected  void setUp()
          Sets up the fixture.
 void subscribe()
          Subscribe three times to same message.
static junit.framework.Test suite()
          Method is used by TestRunner to load these tests
protected  void tearDown()
          Tears down the fixture.
 void testPublishAfterMultiSubscribe()
          TEST: Construct a message and publish it,
the previous XPath subscription should match and send an update.
 void testPublishAfterMultiSubscribeNoDup()
          TEST: Construct a message and publish it,
the previous XPath subscription should match and send an update.
 void unSubscribe()
          unSubscribe three times to same message.
 java.lang.String update(java.lang.String cbSessionId, UpdateKey updateKey, byte[] content, UpdateQos updateQos)
          This is the callback method invoked from xmlBlaster delivering us a new asynchronous message.
 
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

ME

private static java.lang.String ME

glob

private final Global glob

log

private static java.util.logging.Logger log

subscribeId1

private java.lang.String subscribeId1

subscribeId2

private java.lang.String subscribeId2

subscribeId3

private java.lang.String subscribeId3

oidExact

private java.lang.String oidExact

publishOid

private java.lang.String publishOid

senderConnection

private I_XmlBlasterAccess senderConnection

senderContent

private java.lang.String senderContent

duplicates

private boolean duplicates

numReceived

private int numReceived

contentMime

private final java.lang.String contentMime
See Also:
Constant Field Values
Constructor Detail

TestSubNoDup

public TestSubNoDup(Global glob,
                    java.lang.String testName)
Constructs the TestSubNoDup object.

Parameters:
testName - The name used in the test suite
Method Detail

setUp

protected void setUp()
Sets up the fixture.

Connect to xmlBlaster and login

Overrides:
setUp in class junit.framework.TestCase

tearDown

protected void tearDown()
Tears down the fixture.

cleaning up .... erase() the previous message OID and logout

Overrides:
tearDown in class junit.framework.TestCase

subscribe

public void subscribe()
Subscribe three times to same message.

The returned subscribeId1 is checked


publish

public void publish()
TEST: Construct a message and publish it.

The returned publishOid is checked


unSubscribe

public void unSubscribe()
unSubscribe three times to same message.


connect

private void connect()

testPublishAfterMultiSubscribeNoDup

public void testPublishAfterMultiSubscribeNoDup()
TEST: Construct a message and publish it,
the previous XPath subscription should match and send an update.


testPublishAfterMultiSubscribe

public void testPublishAfterMultiSubscribe()
TEST: Construct a message and publish it,
the previous XPath subscription should match and send an update.


update

public java.lang.String update(java.lang.String cbSessionId,
                               UpdateKey updateKey,
                               byte[] content,
                               UpdateQos updateQos)
This is the callback method invoked from xmlBlaster delivering us a new asynchronous message.

Specified by:
update in interface I_Callback
Parameters:
cbSessionId - The session ID specified by the client which registered the callback. You can specify a cbSessionId during connection (with ConnectQos) and this is bounced back here so you can authenticate the message.
updateKey - The arrived key containing the topic name
content - The arrived message content. This is your payload.
See Also:
I_Callback.update(String, UpdateKey, byte[], UpdateQos)

suite

public static junit.framework.Test suite()
Method is used by TestRunner to load these tests


main

public static void main(java.lang.String[] args)
Deprecated. Use the TestRunner from the testsuite to run it:

   java -Djava.compiler= junit.textui.TestRunner org.xmlBlaster.test.qos.TestSubNoDup

Invoke: java org.xmlBlaster.test.qos.TestSubNoDup


xmlBlaster 2.1.0 API

Copyright © 1999-2011 The xmlBlaster.org contributers.