@Test
public void testValidation(TestContext context){

    // add Data for lowdash replacement
    storage.putMockData("/foo/schemas/apis/foo/","{\"foo\": [\"mediamessage\"]}");
    storage.putMockData("/foo/schemas/apis/foo/mediamessage/","{\"mediamessage\": [\"v1\"]}");
    storage.putMockData("/foo/schemas/apis/foo/mediamessage/v1/","{\"v1\": [\"output\"]}");
    storage.putMockData("/foo/schemas/apis/foo/mediamessage/v1/output/","{\"output\": [\"front\"]}");
    storage.putMockData("/foo/schemas/apis/foo/mediamessage/v1/output/front/","{\"front\": [\"GET\"]}");
    storage.putMockData("/foo/schemas/apis/foo/mediamessage/v1/output/front/GET/","{\"GET\": [\"out\"]}");
    storage.putMockData("/foo/schemas/apis/foo/mediamessage/v1/output/front/GET/out","{\n" +
            "    \"$schema\": \"http://json-schema.org/draft-04/schema#\",    \n" +
            "    \"type\": \"object\"\n" +
            "}");
    class GETValidationResourceRequest extends HttpServerRequestMock {
        @Override public HttpMethod method() {
            return HttpMethod.GET;
        }
        @Override public String uri() { return "/foo/mediamessage/v1/output/front";   }
        @Override public String path() {
            return "/foo/mediamessage/v1/output/front";
        }
    }
    String type = "GET/out";
    Buffer jsonBuffer = Buffer.buffer();
    final SettableFuture<String> future = SettableFuture.create();
    validator.validate(new GETValidationResourceRequest(), type, jsonBuffer, validationResult -> {
        String message = validationResult.getMessage();
        context.assertFalse(message.contains("Could not get path"), message);
        context.assertFalse(message.contains("No schema for"), message);
        context.assertTrue(message.contains("Invalid JSON"), message);// No correct mock schema - but this means it found it
        future.set(message);
    });
    context.assertTrue(future.isDone());
}