@Test public void testConstructor_Message_createsIndex() { TestMessage testMessage = new TestMessage(); testMessage.getOperations().add(new SetOperation("w3", new JsonObject().add("foo", 23))); ClientMessage message = new ClientMessage(testMessage); assertFalse(message.getAllOperationsFor("w3").isEmpty()); }
@Test public void testGetAllOperationsFor_withEmtpyMessage() { String json = "{ \"head\" : {}, \"operations\" : [] }"; ClientMessage message = new ClientMessage(JsonObject.readFrom(json)); List<Operation> operations = message.getAllOperationsFor("w5"); assertTrue(operations.isEmpty()); }
@Test public void testConstructor_JsonObject_createsIndex() { String json = "{ \"head\" : {}, \"operations\" : [" + "[ \"set\", \"w3\", { \"foo\" : 23 } ]" + "] }"; ClientMessage message = new ClientMessage(JsonObject.readFrom(json)); List<Operation> operations = message.getAllOperationsFor("w3"); assertFalse(operations.isEmpty()); }
@Test(timeout = 2000) public void testSerDeser1() { ClientMessage cm = new ClientMessage(); cm.setType(ClientMessage.Type.CREATE) .setAuthor("AdnanAziz1968") .setSubject("Hello World") .setBody("My first posting!"); String cmJson = cm.toJson(); ClientMessage cmobj = ClientMessage.fromJson(cmJson); assertEquals(cm, cmobj); score += 5; }
@Test public void testGetAllOperationsFor_withoutMatchingOperations() { String json = "{ \"head\" : {}, \"operations\" : [" + "[ \"set\", \"w3\", { \"p1\" : \"foo\" } ]," + "[ \"set\", \"w4\", { \"p2\" : \"bar\" } ]," + "[ \"notify\", \"w3\", \"widgetSelected\", {} ]" + "] }"; ClientMessage message = new ClientMessage(JsonObject.readFrom(json)); List<Operation> operations = message.getAllOperationsFor("w5"); assertTrue(operations.isEmpty()); }
@Test public void testGetLastNotifyOperation_withNullTarget() { String json = "{ \"head\" : {}, \"operations\" : [" + "[ \"notify\", \"w3\", \"foo\", {} ]," + "[ \"notify\", \"w4\", \"foo\", {} ]," // <--- + "[ \"notify\", \"w5\", \"bar\", {} ]" + "] }"; ClientMessage message = new ClientMessage(JsonObject.readFrom(json)); NotifyOperation operation = message.getLastNotifyOperationFor(null, "foo"); assertEquals("w4", operation.getTarget()); }
@Test public void testGetAllOperationsFor_selectsMatchingOperations() { String json = "{ \"head\" : {}, \"operations\" : [" + "[ \"set\", \"w3\", { \"foo\" : 23 } ]," + "[ \"set\", \"w4\", { \"foo\" : 42 } ]," + "[ \"notify\", \"w3\", \"event\", {} ]" + "] }"; ClientMessage message = new ClientMessage(JsonObject.readFrom(json)); List<Operation> operations = message.getAllOperationsFor("w3"); assertEquals(2, operations.size()); assertTrue(operations.get(0) instanceof SetOperation); assertTrue(operations.get(1) instanceof NotifyOperation); }
@Test public void testGetAllCallOperations_withoutTargetAndMethodName() { String json = "{ \"head\" : {}, \"operations\" : [" + "[ \"set\", \"w3\", { \"count\" : 1 } ]," + "[ \"call\", \"w3\", \"foo\", { \"count\" : 2 } ]," // <--- + "[ \"call\", \"w4\", \"bar\", { \"count\" : 3 } ]" // <--- + "] }"; ClientMessage message = new ClientMessage(JsonObject.readFrom(json)); List<CallOperation> operations = message.getAllCallOperationsFor(null, null); assertEquals(2, operations.size()); assertEquals(2, operations.get(0).getParameters().get("count").asInt()); assertEquals(3, operations.get(1).getParameters().get("count").asInt()); }
@Test public void testGetLastNotifyOperation() { String json = "{ \"head\" : {}, \"operations\" : [" + "[ \"notify\", \"w3\", \"foo\", { \"count\" : 1 } ]," + "[ \"notify\", \"w3\", \"bar\", { \"count\" : 2 } ]," + "[ \"notify\", \"w3\", \"foo\", { \"count\" : 3 } ]," // <--- + "[ \"notify\", \"w3\", \"bar\", { \"count\" : 4 } ]," + "[ \"notify\", \"w4\", \"foo\", { \"count\" : 5 } ]," + "[ \"notify\", \"w4\", \"bar\", { \"count\" : 6 } ]" + "] }"; ClientMessage message = new ClientMessage(JsonObject.readFrom(json)); NotifyOperation operation = message.getLastNotifyOperationFor("w3", "foo"); assertEquals(3, operation.getProperties().get("count").asInt()); }
/** Allow this dedicated thread to handle input from this client */ public void run() { try { ClientMessage myMessage = (ClientMessage) clObj.getObIn().readObject(); this.username = myMessage.getSender(); clObj.setName(username); System.out.println("Server gets: " + myMessage.toString()); clientList.userConnect(username, clObj); } catch (Exception e) { JOptionPane.showMessageDialog(panel, "Unrecoverablable error in input stream"); e.printStackTrace(); System.exit(1); } while (true) { try { ClientMessage myMessage = (ClientMessage) clObj.getObIn().readObject(); System.out.println("Server gets: " + myMessage.toString()); List<ObjectOutputStream> destinations = clientList.getUserOutStreams(myMessage.getDestinations()); for (ObjectOutputStream s : destinations) { s.writeObject(new ServerMessage(this.username, myMessage.getMessage())); } } catch (SocketException e) { System.out.println("Disconnecting user: "******"Some other error in client handler (run)"); JOptionPane.showMessageDialog(panel, "Unrecoverablable error in input stream"); ex.printStackTrace(); System.exit(1); break; } } }
@Test(timeout = 5000) public void testQuery1() { ClientMessage cmAdd1 = new ClientMessage() .setType(ClientMessage.Type.CREATE) .setAuthor("AdnanAziz1968") .setSubject("Hello World") .setBody("My first posting!"); ClientMessage cmAdd2 = new ClientMessage() .setType(ClientMessage.Type.CREATE) .setAuthor("Don Bradman") .setSubject("29") .setBody("Still the greatest!"); ClientMessage cmAdd3 = new ClientMessage() .setType(ClientMessage.Type.CREATE) .setAuthor("AdnanAziz1968") .setSubject("Random musings") .setBody("My second posting!"); ClientMessage cmQuery = new ClientMessage().setType(ClientMessage.Type.QUERY).setAuthor("AdnanAziz1968"); ServerMessage result = doTxRx(cmAdd1, cmAdd2, cmAdd3, cmQuery); assertEquals(result.getPostings().size(), 2); for (Posting p : result.getPostings()) { assert (p.getAuthor().equals(cmQuery.getAuthor())); } ClientMessage cmBodyQuery = new ClientMessage().setType(ClientMessage.Type.QUERY).setBody("posting My"); assertEquals(2, result.getPostings().size()); for (Posting p : result.getPostings()) { assertTrue(p.getBody().contains("My")); assertTrue(p.getBody().contains("posting")); } score += 15; }
public void doTestStressSend(final boolean netty) throws Exception { HornetQServer server = createServer(false, netty); server.start(); ServerLocator locator = createNonHALocator(netty); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = null; final int batchSize = 2000; final int numberOfMessages = 100000; try { server.start(); session = sf.createSession(false, false); session.createQueue("address", "queue"); ClientProducer producer = session.createProducer("address"); ClientMessage message = session.createMessage(false); message.getBodyBuffer().writeBytes(new byte[1024]); for (int i = 0; i < numberOfMessages; i++) { producer.send(message); if (i % batchSize == 0) { System.out.println("Sent " + i); session.commit(); } } session.commit(); session.close(); session = sf.createSession(false, false); ClientConsumer consumer = session.createConsumer("queue"); session.start(); for (int i = 0; i < numberOfMessages; i++) { ClientMessage msg = consumer.receive(5000); Assert.assertNotNull(msg); msg.acknowledge(); if (i % batchSize == 0) { System.out.println("Consumed " + i); session.commit(); } } session.commit(); } finally { if (session != null) { try { sf.close(); session.close(); } catch (Exception e) { e.printStackTrace(); } } locator.close(); server.stop(); } }