1 package org.xmlBlaster.test.classtest;
  2 
  3 import java.util.logging.Logger;
  4 
  5 import junit.framework.TestCase;
  6 
  7 import org.xmlBlaster.client.I_ConnectionStateListener;
  8 import org.xmlBlaster.client.I_XmlBlasterAccess;
  9 import org.xmlBlaster.client.XmlBlasterAccess;
 10 import org.xmlBlaster.client.key.EraseKey;
 11 import org.xmlBlaster.client.key.GetKey;
 12 import org.xmlBlaster.client.key.SubscribeKey;
 13 import org.xmlBlaster.client.key.UnSubscribeKey;
 14 import org.xmlBlaster.client.protocol.I_CallbackServer;
 15 import org.xmlBlaster.client.qos.ConnectQos;
 16 import org.xmlBlaster.util.Global;
 17 import org.xmlBlaster.util.XmlBlasterException;
 18 import org.xmlBlaster.util.def.ErrorCode;
 19 import org.xmlBlaster.util.qos.address.Address;
 20 
 21 /**
 22  * Test the client lib XmlBlasterAccess without a connection to a server. 
 23  * java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.classtest.XmlBlasterAccessTest
 24  * @see org.xmlBlaster.client.I_XmlBlasterAccess
 25  * @see org.xmlBlaster.client.XmlBlasterAccess
 26  */
 27 public class XmlBlasterAccessTest extends TestCase {
 28    private Global glob;
 29    private static Logger log = Logger.getLogger(XmlBlasterAccessTest.class.getName());
 30 
 31    public XmlBlasterAccessTest() {
 32       this(null, "XmlBlasterAccessTest");
 33    }
 34 
 35    public XmlBlasterAccessTest(Global glob, String name) {
 36       super(name);
 37       this.glob = (glob == null) ? Global.instance() : glob;
 38    }
 39 
 40    protected void setUp() {
 41       this.glob = (this.glob == null) ? Global.instance() : this.glob;
 42 
 43    }
 44 
 45    /**
 46     * Test the three creation variants of XmlBlasterAccess and tests
 47     * all methods with null arguments
 48     */
 49    public void testCreation() {
 50       System.out.println("***XmlBlasterAccessTest: testCreation ...");
 51       I_XmlBlasterAccess xmlBlasterAccess = null;
 52       for (int i=0; i<3; i++) {
 53          if (i == 0) {
 54             Global nullGlobal = null;
 55             xmlBlasterAccess = new XmlBlasterAccess(nullGlobal);
 56          }
 57          else if (i == 1) {
 58             String[] nullArgs = null;
 59             xmlBlasterAccess = new XmlBlasterAccess(nullArgs);
 60          }
 61          else {
 62             xmlBlasterAccess = glob.getXmlBlasterAccess();
 63          }
 64 
 65          xmlBlasterAccess.setServerNodeId("/node/test");
 66          assertEquals("", "/node/test", xmlBlasterAccess.getServerNodeId());
 67 
 68          xmlBlasterAccess.setServerNodeId("FRISH FISH");
 69          assertEquals("", "/node/FRISH FISH", xmlBlasterAccess.getServerNodeId());
 70 
 71          try {
 72             ConnectQos connectQos = new ConnectQos(glob);
 73             Address address = new Address(glob);
 74             address.setBootstrapPort(8999); // a wrong port to avoid connection
 75             address.setRetries(0);       // switch off polling
 76             connectQos.setAddress(address);
 77             xmlBlasterAccess.connect(connectQos, null);
 78             fail("Not expected successful connect");
 79          }
 80          catch (XmlBlasterException e) {
 81             if (e.isErrorCode(ErrorCode.COMMUNICATION_NOCONNECTION_DEAD))
 82                log.info("Exception is OK if not connected: " + e.getErrorCode());
 83             else
 84                fail("testDefaultConnectWithoutServer failed: " + e.getMessage());
 85          }
 86 
 87          if (xmlBlasterAccess.isAlive()) {
 88             log.severe("No testing possible when xmlBlaster is running - ignoring this test");
 89             xmlBlasterAccess.disconnect(null);
 90             continue;
 91          }
 92 
 93          assertTrue("", null != xmlBlasterAccess.getQueue());
 94          assertEquals("", false, xmlBlasterAccess.isAlive());
 95          assertEquals("", false, xmlBlasterAccess.isPolling());
 96          assertEquals("", false, xmlBlasterAccess.isDead());
 97          log.info("SUCCESS: Check I_ConnectionHandler");
 98 
 99          assertEquals("", false, xmlBlasterAccess.isConnected());
100          xmlBlasterAccess.registerConnectionListener((I_ConnectionStateListener)null);
101 
102 
103          assertTrue("", xmlBlasterAccess.getCbServer() == null);
104          try {
105             I_CallbackServer cbServer = xmlBlasterAccess.initCbServer(null, null);
106             assertTrue("", cbServer != null);
107             assertTrue("", cbServer.getCbProtocol() != null);
108             assertTrue("", cbServer.getCbAddress() != null);
109             log.info("SUCCESS: initCbServer protocol=" + cbServer.getCbProtocol() + " address=" + cbServer.getCbAddress());
110             cbServer.shutdown();
111             log.info("SUCCESS: CbServer.shutdown()");
112             assertTrue("", xmlBlasterAccess.getCbServer() == null); // is not cached in xmlBlasterAccess
113          }
114          catch (XmlBlasterException e) {
115             fail("testCreation failed: " + e.getMessage());
116          }
117 
118          assertTrue("", xmlBlasterAccess.getSecurityPlugin() != null);
119          assertEquals("", true, xmlBlasterAccess.disconnect(null));
120          assertTrue("", xmlBlasterAccess.getConnectReturnQos() == null);
121          assertTrue("", xmlBlasterAccess.getConnectQos() == null);
122          assertTrue("", xmlBlasterAccess.getId() != null);
123          assertTrue("", xmlBlasterAccess.getSessionName() == null);
124 
125          try {
126             xmlBlasterAccess.subscribe((SubscribeKey)null, null);
127          }
128          catch (XmlBlasterException e) {
129             if (e.isUser())
130                log.info("Exception is OK if not connected: " + e.getErrorCode());
131             else
132                fail("testCreation failed: " + e.getMessage());
133          }
134 
135          try {
136             xmlBlasterAccess.subscribe((String)null, null);
137          }
138          catch (XmlBlasterException e) {
139             if (e.isUser())
140                log.info("Exception is OK if not connected: " + e.getErrorCode());
141             else
142                fail("testCreation failed: " + e.getMessage());
143          }
144 
145          try {
146             xmlBlasterAccess.subscribe((SubscribeKey)null, null, null);
147          }
148          catch (XmlBlasterException e) {
149             if (e.isUser())
150                log.info("Exception is OK if not connected: " + e.getErrorCode());
151             else
152                fail("testCreation failed: " + e.getMessage());
153          }
154 
155          try {
156             xmlBlasterAccess.get((String)null, null);
157          }
158          catch (XmlBlasterException e) {
159             if (e.isUser())
160                log.info("Exception is OK if not connected: " + e.getErrorCode());
161             else
162                fail("testCreation failed: " + e.getMessage());
163          }
164 
165          try {
166             xmlBlasterAccess.get((GetKey)null, null);
167          }
168          catch (XmlBlasterException e) {
169             if (e.isUser())
170                log.info("Exception is OK if not connected: " + e.getErrorCode());
171             else
172                fail("testCreation failed: " + e.getMessage());
173          }
174 
175          try {
176             xmlBlasterAccess.unSubscribe((String)null, null);
177          }
178          catch (XmlBlasterException e) {
179             if (e.isUser())
180                log.info("Exception is OK if not connected: " + e.getErrorCode());
181             else
182                fail("testCreation failed: " + e.getMessage());
183          }
184 
185          try {
186             xmlBlasterAccess.unSubscribe((UnSubscribeKey)null, null);
187          }
188          catch (XmlBlasterException e) {
189             if (e.isUser())
190                log.info("Exception is OK if not connected: " + e.getErrorCode());
191             else
192                fail("testCreation failed: " + e.getMessage());
193          }
194 
195          try {
196             xmlBlasterAccess.publish(null);
197          }
198          catch (XmlBlasterException e) {
199             if (e.isUser())
200                log.info("Exception is OK if not connected: " + e.getErrorCode());
201             else
202                fail("testCreation failed: " + e.getMessage());
203          }
204             
205          try {
206             xmlBlasterAccess.publishOneway(null);
207          }
208          catch (XmlBlasterException e) {
209             if (e.isUser())
210                log.info("Exception is OK if not connected: " + e.getErrorCode());
211             else
212                fail("testCreation failed: " + e.getMessage());
213          }
214             
215          try {
216             xmlBlasterAccess.publishArr(null);
217          }
218          catch (XmlBlasterException e) {
219             if (e.isUser())
220                log.info("Exception is OK if not connected: " + e.getErrorCode());
221             else
222                fail("testCreation failed: " + e.getMessage());
223          }
224             
225          try {
226             xmlBlasterAccess.erase((String)null, null);
227          }
228          catch (XmlBlasterException e) {
229             if (e.isUser())
230                log.info("Exception is OK if not connected: " + e.getErrorCode());
231             else
232                fail("testCreation failed: " + e.getMessage());
233          }
234 
235          try {
236             xmlBlasterAccess.erase((EraseKey)null, null);
237          }
238          catch (XmlBlasterException e) {
239             if (e.isUser())
240                log.info("Exception is OK if not connected: " + e.getErrorCode());
241             else
242                fail("testCreation failed: " + e.getMessage());
243          }
244 
245          assertTrue("", xmlBlasterAccess.getGlobal() != null);
246          assertTrue("", xmlBlasterAccess.toXml() != null);
247 
248          log.info("SUCCESS: Check I_XmlBlasterAccess");
249       }
250 
251       System.out.println("***XmlBlasterAccessTest: testCreation [SUCCESS]");
252    }
253 
254    public void testDefaultConnectWithoutServer() throws Exception {
255       System.out.println("***XmlBlasterAccessTest: testDefaultConnectWithoutServer ...");
256       Global nullGlobal = null;
257       I_XmlBlasterAccess xmlBlasterAccess = new XmlBlasterAccess(nullGlobal);
258 
259       assertEquals("", false, xmlBlasterAccess.isConnected());
260 
261       ConnectQos q = new ConnectQos(null);
262       log.info("Default ConnectQos=" + q.toXml() + " retries=" + q.getAddress().getRetries() + " delay=" + q.getAddress().getDelay());
263       assertEquals("", -1, q.getAddress().getRetries()); // retry forever
264       assertEquals("", q.getAddress().getDefaultDelay(), q.getAddress().getDelay()); // 5000L
265       assertTrue("", q.getAddress().getDelay() > 0);
266       /*
267       xmlBlasterAccess.registerConnectionListener((I_ConnectionStateListener)null);
268       try {
269          ConnectReturnQos connectReturnQos = xmlBlasterAccess.connect(null, null);
270       }
271       catch (XmlBlasterException e) {
272          if (e.isUser())
273             log.info("Exception is OK if not connected: " + e.getErrorCode());
274          else
275             fail("testDefaultConnectWithoutServer failed: " + e.getMessage());
276       }
277       log.info("SUCCESS: Check I_XmlBlasterAccess");
278       */
279       log.info("TEST MISSING");
280 
281       System.out.println("***XmlBlasterAccessTest: testDefaultConnectWithoutServer [SUCCESS]");
282    }
283 
284    /**
285     * <pre>
286     *  java org.xmlBlaster.test.classtest.XmlBlasterAccessTest
287     * </pre>
288     */
289    public static void main(String args[]) {
290       XmlBlasterAccessTest testSub = new XmlBlasterAccessTest(new Global(args, true, false), "XmlBlasterAccessTest");
291       try {
292          testSub.setUp();
293          testSub.testCreation();
294          testSub.testDefaultConnectWithoutServer();
295          //testSub.tearDown();
296       }
297       catch (Exception e) {
298          System.out.println("TEST FAILED: " + e.toString());
299       }
300    }
301 }


syntax highlighted by Code2HTML, v. 0.9.1