@Test
public void testUpdateRulesOnEventBusEvent(TestContext context) throws InterruptedException {

    RuleProvider ruleProvider = new RuleProvider(vertx, rulesPath, storage, properties);
    Future<List<Rule>> rulesFuture = ruleProvider.getRules();
    context.assertTrue(rulesFuture.succeeded(), "getRules() future should have been successful");
    context.assertNotNull(rulesFuture.result(), "The list of rules should not be null");
    context.assertEquals(3, rulesFuture.result().size(), "There should be exactly 3 rules");
    // change routing rules and send event bus message
    ((MockResourceStorage)storage).putMockData(rulesPath, RULES_STORAGE_UPDATED);
    vertx.eventBus().publish(Address.RULE_UPDATE_ADDRESS, true);
    Future<List<Rule>> rulesFuture2 = ruleProvider.getRules();
    context.assertTrue(rulesFuture2.succeeded(), "getRules() future should have been successful");
    context.assertNotNull(rulesFuture2.result(), "The list of rules should not be null");
    context.assertEquals(2, rulesFuture2.result().size(), "There should be exactly 2 rules after update");
}