protected Response getVipResponse(String version, String entityName, String acceptHeader,
                                      EurekaAccept eurekaAccept, Key.EntityType entityType) {
        if (!registry.shouldAllowAccess(false)) {
            return Response.status(Response.Status.FORBIDDEN).build();
        }
        CurrentRequestVersion.set(Version.toEnum(version));
        Key.KeyType keyType = Key.KeyType.JSON;
        if (acceptHeader == null || !acceptHeader.contains("json")) {
            keyType = Key.KeyType.XML;
        }

        Key cacheKey = new Key(
                entityType,
                entityName,
                keyType,
                CurrentRequestVersion.get(),
                eurekaAccept
        );

        String payLoad = responseCache.get(cacheKey);
        CurrentRequestVersion.remove();

        if (payLoad != null) {
            logger.debug("Found: {}", entityName);
            return Response.ok(payLoad).build();
        } else {
            logger.debug("Not Found: {}", entityName);
            return Response.status(Response.Status.NOT_FOUND).build();
        }
    }
@Test
    public void testFullVipGet() throws Exception {
        Response response = resource.getVipResponse(
                Version.V2.name(),
                vipName,
                MediaType.APPLICATION_JSON,
                EurekaAccept.full,
                Key.EntityType.VIP
        );

        String json = String.valueOf(response.getEntity());
        DecoderWrapper decoder = CodecWrappers.getDecoder(CodecWrappers.LegacyJacksonJson.class);

        Applications decodedApps = decoder.decode(json, Applications.class);
        Application decodedApp = decodedApps.getRegisteredApplications(testApplication.getName());
        assertThat(EurekaEntityComparators.equal(testApplication, decodedApp), is(true));
    }