コード例 #1
0
  @Test
  public void testGetConfiguration() {

    InMemoryClient client = new InMemoryClient(new InMemoryRoutingContext(), RecipientKind.DM);
    Map<String, String> conf = client.getConfiguration();

    Assert.assertEquals(1, conf.size());
    Assert.assertEquals(
        MessagingConstants.FACTORY_IN_MEMORY, conf.get(MessagingConstants.MESSAGING_TYPE_PROPERTY));
  }
コード例 #2
0
  @Test
  public void testScenarios_publications() throws Exception {

    InMemoryClient client = new InMemoryClient(new InMemoryRoutingContext(), RecipientKind.DM);
    LinkedBlockingQueue<Message> queue = new LinkedBlockingQueue<>();
    client.setMessageQueue(queue);

    MessagingContext ctx = new MessagingContext(RecipientKind.AGENTS, "domain", "app");

    // Not connected, publications cannot work
    Message msg = new MsgCmdAddInstance(new Instance(""));

    Assert.assertFalse(client.isConnected());
    Assert.assertEquals(0, queue.size());
    client.publish(ctx, msg);
    Assert.assertEquals(0, queue.size());

    // Connection
    client.openConnection();
    Assert.assertTrue(client.isConnected());
    client.publish(ctx, msg);
    Assert.assertEquals(0, queue.size());

    // We need to subscribe to this context to dispatch the message.
    // The messaging tests verify routing more precisely.
    client.subscribe(ctx);
    client.publish(ctx, msg);

    Assert.assertEquals(1, queue.size());
    Assert.assertEquals(msg, queue.element());
  }
コード例 #3
0
  @Test
  public void testSetOwnerProperties_ownerId() {

    Set<String> ownerIds = new HashSet<>();

    InMemoryClient client = new InMemoryClient(new InMemoryRoutingContext(), RecipientKind.DM);
    client.setOwnerProperties(RecipientKind.DM, "domain", null, null);
    ownerIds.add(client.getOwnerId());

    client.setOwnerProperties(RecipientKind.AGENTS, "domain", "app1", "root1");
    ownerIds.add(client.getOwnerId());

    client.setOwnerProperties(RecipientKind.AGENTS, "domain", "app1", "root2");
    ownerIds.add(client.getOwnerId());

    client.setOwnerProperties(RecipientKind.AGENTS, "domain", "app2", "root2");
    ownerIds.add(client.getOwnerId());

    Assert.assertEquals(4, ownerIds.size());
  }
コード例 #4
0
  @Test
  public void testSetOwnerProperties_propertiesAreMoved() throws Exception {

    // Init...
    InMemoryClient client = new InMemoryClient(new InMemoryRoutingContext(), RecipientKind.DM);
    LinkedBlockingQueue<Message> queue = new LinkedBlockingQueue<>();
    client.setMessageQueue(queue);
    client.openConnection();

    MessagingContext ctx = new MessagingContext(RecipientKind.AGENTS, "domain", "app");
    client.subscribe(ctx);
    String ownerId_1 = client.getOwnerId();

    // Verify associations
    Map<String, Set<MessagingContext>> sub = client.getRoutingContext().subscriptions;
    Map<String, LinkedBlockingQueue<Message>> ctxToQueue =
        ((InMemoryRoutingContext) client.getRoutingContext()).ctxToQueue;
    Assert.assertEquals(queue, ctxToQueue.get(ownerId_1));

    Set<MessagingContext> subscribedContexts = sub.get(ownerId_1);
    Assert.assertNotNull(subscribedContexts);
    Assert.assertEquals(1, subscribedContexts.size());
    Assert.assertTrue(subscribedContexts.contains(ctx));

    // Change the owner ID
    client.setOwnerProperties(RecipientKind.AGENTS, "domain", "app1", "root1");

    // Verify properties were kept
    String ownerId_2 = client.getOwnerId();
    Assert.assertFalse(ownerId_2.equals(ownerId_1));

    Assert.assertEquals(queue, ctxToQueue.get(ownerId_2));
    Assert.assertNull(ctxToQueue.get(ownerId_1));
    Assert.assertNull(sub.get(ownerId_1));

    subscribedContexts = sub.get(ownerId_2);
    Assert.assertNotNull(subscribedContexts);
    Assert.assertEquals(1, subscribedContexts.size());
    Assert.assertTrue(subscribedContexts.contains(ctx));
  }
コード例 #5
0
  @Test
  public void testScenarios_subscriptions() throws Exception {

    InMemoryClient client = new InMemoryClient(new InMemoryRoutingContext(), RecipientKind.DM);
    MessagingContext ctx = new MessagingContext(RecipientKind.AGENTS, "domain", "app");

    // Not connected, subscriptions cannot work
    Assert.assertFalse(client.isConnected());
    Assert.assertNull(getSubscriptions(client));
    client.subscribe(ctx);
    Assert.assertNull(getSubscriptions(client));
    client.unsubscribe(ctx);
    Assert.assertNull(getSubscriptions(client));

    // Connection
    client.openConnection();
    Assert.assertTrue(client.isConnected());
    client.subscribe(ctx);
    Assert.assertEquals(1, getSubscriptions(client).size());
    Assert.assertTrue(getSubscriptions(client).contains(ctx));

    client.unsubscribe(ctx);
    Assert.assertNull(getSubscriptions(client));

    client.unsubscribe(ctx);
    client.unsubscribe(null);
    Assert.assertNull(getSubscriptions(client));

    // Cleaning artifacts
    client.subscribe(ctx);
    Assert.assertEquals(1, getSubscriptions(client).size());

    client.deleteMessagingServerArtifacts(null);
    Assert.assertNull(getSubscriptions(client));
  }
コード例 #6
0
  @Test
  public void testGetMessagingType() {

    InMemoryClient client = new InMemoryClient(new InMemoryRoutingContext(), RecipientKind.DM);
    Assert.assertEquals(MessagingConstants.FACTORY_IN_MEMORY, client.getMessagingType());
  }
コード例 #7
0
 private Set<MessagingContext> getSubscriptions(InMemoryClient client) {
   return client.getRoutingContext().subscriptions.get(client.getOwnerId());
 }