@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));
  }