Samples
@Test
public void test_Post_Event() {
    postEvent(getBundleContext(), KNOWHOWLAB_TOPICS_TEST, 200);
    assertEvent(KNOWHOWLAB_TOPICS_TEST, 500, TimeUnit.MILLISECONDS);
}
@Test
public void test_Post_Event_With_Filters() throws InvalidSyntaxException {
    Map<String, String> props = new HashMap<String, String>();
    props.put("prop_key", "val123");
    postEvent(getBundleContext(), KNOWHOWLAB_TOPICS_TEST, props, 200);
    assertEvent(KNOWHOWLAB_TOPICS_TEST, FilterUtils.eq("prop_key", "val123"), 500, TimeUnit.MILLISECONDS);
    postEvent(getBundleContext(), KNOWHOWLAB_TOPICS_TEST, props, 200);
    try {
        assertEvent(KNOWHOWLAB_TOPICS_TEST, FilterUtils.eq("prop_key", "val555"), 500, TimeUnit.MILLISECONDS);
    } catch (AssertionError e) {
    }
}
@Test
public void test_Service_Event() throws InvalidSyntaxException {
    // start bundle in 2 sec
    startBundleAsync(getBundleContext(), "org.knowhowlab.osgi.testing.it.test.bundle", 200);
    assertEvent("org/osgi/framework/ServiceEvent/REGISTERED", FilterUtils.eq("service.objectClass", "org.knowhowlab.osgi.testing.it.testbundle.service.Echo"), 1, TimeUnit.SECONDS);
}
@Test
public void test_Configuration_manipulations() {
    assertConfigurationUnavailable("test.pid", null, null);
    Map<String, String> config = new HashMap<String, String>();
    config.put("test.key", "test.value");
    supplyConfiguration(getBundleContext(), "test.pid", null, config, 0);
    assertConfigurationUpdated("test.pid", null, null, 500, TimeUnit.MILLISECONDS);
    assertConfigurationAvailable("test.pid", null, null);
    deleteConfiguration(getBundleContext(), "test.pid", null, 0);
    assertConfigurationDeleted("test.pid", null, null, 500, TimeUnit.MILLISECONDS);
    assertConfigurationUnavailable("test.pid", null, null);
}