public List<RamlParameterModel> getQueryParameters() {
   if (security.getDescribedBy() == null || security.getDescribedBy().getQueryParameters() == null)
     return newArrayList();
   return security
       .getDescribedBy()
       .getQueryParameters()
       .entrySet()
       .stream()
       .map(e -> new RamlParameterModel(e.getKey(), e.getValue()))
       .collect(toList());
 }
  public Map<String, String> getResponses() {
    Map<String, String> responses = newHashMap();
    if (security.getDescribedBy() == null || security.getDescribedBy().getResponses() == null)
      return responses;

    security
        .getDescribedBy()
        .getResponses()
        .entrySet()
        .stream()
        .forEach(
            e -> {
              String description =
                  e.getValue().getDescription() == null ? "" : e.getValue().getDescription();
              responses.put(e.getKey(), description);
            });
    return responses;
  }
 public String getId() {
   return Hex.encodeHexString(security.getType().getBytes());
 }
 public String getType() {
   return security.getType();
 }
  private void verifyFullDump(Raml source, String dump) {
    Raml target = verifyDump(source, dump);

    // *********** URI PARAMETERS ***********

    UriParameter srcHost = source.getBaseUriParameters().get("host");
    UriParameter tgtHost = target.getBaseUriParameters().get("host");
    assertThat(tgtHost.getDisplayName(), is(srcHost.getDisplayName()));
    assertThat(tgtHost.getDescription(), is(srcHost.getDescription()));
    assertThat(tgtHost.getType(), is(srcHost.getType()));
    assertThat(tgtHost.getMinLength(), is(srcHost.getMinLength()));
    assertThat(tgtHost.getMaxLength(), is(srcHost.getMaxLength()));
    assertThat(tgtHost.getPattern(), is(srcHost.getPattern()));

    UriParameter srcPort = source.getBaseUriParameters().get("port");
    UriParameter tgtPort = target.getBaseUriParameters().get("port");
    assertThat(tgtPort.getType(), is(srcPort.getType()));
    assertThat(tgtPort.getMinimum(), is(srcPort.getMinimum()));
    assertThat(tgtPort.getMaximum(), is(srcPort.getMaximum()));

    UriParameter srcPath = source.getBaseUriParameters().get("path");
    UriParameter tgtPath = target.getBaseUriParameters().get("path");
    assertThat(tgtPath.getType(), is(srcPath.getType()));
    assertThat(tgtPath.getEnumeration().size(), is(srcPath.getEnumeration().size()));
    assertThat(tgtPath.getEnumeration().get(0), is(srcPath.getEnumeration().get(0)));
    assertThat(tgtPath.getEnumeration().get(1), is(srcPath.getEnumeration().get(1)));
    assertThat(tgtPath.getEnumeration().get(2), is(srcPath.getEnumeration().get(2)));

    // *********** DOCUMENTATION ***********

    List<DocumentationItem> srcDoc = source.getDocumentation();
    List<DocumentationItem> tgtDoc = target.getDocumentation();
    assertThat(tgtDoc.get(0).getTitle(), is(srcDoc.get(0).getTitle()));
    assertThat(tgtDoc.get(0).getContent(), is(srcDoc.get(0).getContent()));

    // *********** GLOBAL SCHEMAS ***********

    List<Map<String, String>> srcSchemas = source.getSchemas();
    List<Map<String, String>> tgtSchemas = target.getSchemas();
    assertThat(tgtSchemas.size(), is(srcSchemas.size()));
    assertThat(tgtSchemas.get(0).get("league-json"), is(srcSchemas.get(0).get("league-json")));
    assertThat(tgtSchemas.get(1).get("league-xml"), is(srcSchemas.get(1).get("league-xml")));

    // *********** FORM PARAMETERS ***********

    Map<String, List<FormParameter>> srcFormParams =
        source
            .getResource("/media")
            .getAction(GET)
            .getBody()
            .get("multipart/form-data")
            .getFormParameters();
    Map<String, List<FormParameter>> tgtFormParams =
        target
            .getResource("/media")
            .getAction(GET)
            .getBody()
            .get("multipart/form-data")
            .getFormParameters();
    assertThat(srcFormParams.size(), is(tgtFormParams.size()));
    assertThat(srcFormParams.get("form-1").size(), is(tgtFormParams.get("form-1").size()));
    assertThat(
        srcFormParams.get("form-1").get(0).getDisplayName(),
        is(tgtFormParams.get("form-1").get(0).getDisplayName()));
    assertThat(srcFormParams.get("form-2").size(), is(tgtFormParams.get("form-2").size()));
    assertThat(
        srcFormParams.get("form-2").get(0).getDisplayName(),
        is(tgtFormParams.get("form-2").get(0).getDisplayName()));

    // *********** RESOURCE TYPES ************

    assertThat(target.getResourceTypes().size(), is(source.getResourceTypes().size()));
    assertThat(
        target.getResourceTypes().get(0).get("basic").getDisplayName(),
        is(source.getResourceTypes().get(0).get("basic").getDisplayName()));
    assertThat(
        target.getResourceTypes().get(1).get("complex").getDisplayName(),
        is(source.getResourceTypes().get(1).get("complex").getDisplayName()));

    assertThat(target.getResource("/").getType(), is(source.getResource("/").getType()));
    assertThat(target.getResource("/media").getType(), is(source.getResource("/media").getType()));

    // *********** TRAITS ************

    assertThat(target.getTraits().size(), is(source.getTraits().size()));
    assertThat(
        target.getTraits().get(0).get("simple").getDisplayName(),
        is(source.getTraits().get(0).get("simple").getDisplayName()));
    assertThat(
        target.getTraits().get(1).get("knotty").getDisplayName(),
        is(source.getTraits().get(1).get("knotty").getDisplayName()));

    assertThat(
        target.getResource("/").getAction(HEAD).getIs(),
        is(source.getResource("/").getAction(HEAD).getIs()));

    // *********** SECURITY SCHEMES ************

    assertThat(target.getSecuritySchemes().size(), is(source.getSecuritySchemes().size()));
    SecurityScheme tOauth2 = target.getSecuritySchemes().get(0).get("oauth_2_0");
    SecurityScheme sOauth2 = source.getSecuritySchemes().get(0).get("oauth_2_0");
    assertThat(tOauth2.getDescription(), is(sOauth2.getDescription()));
    assertThat(
        tOauth2.getDescribedBy().getHeaders().size(),
        is(sOauth2.getDescribedBy().getHeaders().size()));
    assertThat(
        tOauth2.getDescribedBy().getHeaders().get("Authorization").getDescription(),
        is(sOauth2.getDescribedBy().getHeaders().get("Authorization").getDescription()));
    assertThat(
        tOauth2.getDescribedBy().getQueryParameters().size(),
        is(sOauth2.getDescribedBy().getQueryParameters().size()));
    assertThat(
        tOauth2.getDescribedBy().getQueryParameters().get("access_token").getDescription(),
        is(sOauth2.getDescribedBy().getQueryParameters().get("access_token").getDescription()));
    assertThat(
        tOauth2.getDescribedBy().getResponses().size(),
        is(sOauth2.getDescribedBy().getResponses().size()));
    assertThat(
        tOauth2.getDescribedBy().getResponses().get("401").getDescription(),
        is(sOauth2.getDescribedBy().getResponses().get("401").getDescription()));
    assertThat(tOauth2.getSettings().size(), is(sOauth2.getSettings().size()));
    assertThat(
        tOauth2.getSettings().get("authorizationUrl").size(),
        is(sOauth2.getSettings().get("authorizationUrl").size()));
    assertThat(
        sOauth2.getSettings().get("authorizationUrl").get(0),
        is("https://www.dropbox.com/1/oauth2/authorize"));
    assertThat(
        tOauth2.getSettings().get("authorizationUrl").get(0),
        is(sOauth2.getSettings().get("authorizationUrl").get(0)));

    assertThat(
        target.getResource("/").getSecuredBy().size(),
        is(source.getResource("/").getSecuredBy().size()));
    assertThat(
        target.getResource("/").getSecuredBy().get(0).getName(),
        is(source.getResource("/").getSecuredBy().get(0).getName()));
    assertThat(
        target.getResource("/").getSecuredBy().get(0).getParameters().size(),
        is(source.getResource("/").getSecuredBy().get(0).getParameters().size()));
    assertThat(
        target.getResource("/").getSecuredBy().get(0).getParameters().get("scopes").get(0),
        is(source.getResource("/").getSecuredBy().get(0).getParameters().get("scopes").get(0)));
    assertThat(
        target.getResource("/").getSecuredBy().get(1).getName(),
        is(source.getResource("/").getSecuredBy().get(1).getName()));
    assertThat(
        target.getResource("/").getSecuredBy().get(2).getName(),
        is(source.getResource("/").getSecuredBy().get(2).getName()));

    // *********** PROTOCOLS ************

    assertThat(target.getProtocols().size(), is(source.getProtocols().size()));
    assertThat(target.getProtocols().get(0), is(source.getProtocols().get(0)));
    assertThat(target.getProtocols().get(1), is(source.getProtocols().get(1)));
  }