/** * Builds a ServiceDependency instance. * * @return service dependency */ public ServiceDependency build() { return new ServiceDependency(name, description, url, type, subtype, methods, mediaTypes, authentication, criticality, expectations); } }
@Override public String toString() { return "ServiceDependency{" + "url='" + getUrl() + '\'' + ", methods=" + getMethods() + ", mediaTypes=" + getMediaTypes() + ", authentication='" + getAuthentication() + '\'' + "} " + super.toString(); }
/** * Returns a builder instance that is initialized using a prototype ServiceDependency. * <p> * All values of the prototype are copied. * </p> * @param prototype the prototype dependency * @return ServiceDependencyBuilder */ public static ServiceDependencyBuilder copyOf(final ServiceDependency prototype) { return new ServiceDependencyBuilder() .withName(prototype.getName()) .withDescription(prototype.getDescription()) .withUrl(prototype.getUrl()) .withType(prototype.getType()) .withSubtype(prototype.getSubtype()) .withMethods(prototype.getMethods()) .withMediaTypes(prototype.getMediaTypes()) .withAuthentication(prototype.getAuthentication()) .withCriticality(prototype.getCriticality()) .withExpectations(prototype.getExpectations()); }
@Test public void shouldBuildServiceDependency() { final ServiceDependency dependency = serviceDependency("http://example.com") .withName("name") .withDescription("description") .withMediaTypes(singletonList("application/json")) .withMethods(asList("GET", "HEAD")) .withAuthentication(AUTH_HMAC) .build(); assertThat(dependency.getName()).isEqualTo("name"); assertThat(dependency.getDescription()).isEqualTo("description"); assertThat(dependency.getAuthentication()).isEqualTo("HMAC"); assertThat(dependency.getMediaTypes()).contains("application/json"); assertThat(dependency.getMethods()).contains("GET", "HEAD"); assertThat(dependency.getType()).isEqualTo("service"); assertThat(dependency.getSubtype()).isEqualTo("OTHER"); assertThat(dependency.getUrl()).isEqualTo("http://example.com"); }
@Test public void shouldBuildRestServiceDependency() { final ServiceDependency dependency = restServiceDependency("http://example.com") .withName("name") .withDescription("description") .withMediaTypes(singletonList("application/json")) .withAuthentication(AUTH_OAUTH) .withMethods(asList("GET", "HEAD")) .build(); assertThat(dependency.getName()).isEqualTo("name"); assertThat(dependency.getDescription()).isEqualTo("description"); assertThat(dependency.getAuthentication()).isEqualTo("OAUTH"); assertThat(dependency.getMediaTypes()).contains("application/json"); assertThat(dependency.getMethods()).contains("GET", "HEAD"); assertThat(dependency.getType()).isEqualTo("service"); assertThat(dependency.getSubtype()).isEqualTo("REST"); assertThat(dependency.getUrl()).isEqualTo("http://example.com"); }
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof ServiceDependency)) return false; if (!super.equals(o)) return false; ServiceDependency that = (ServiceDependency) o; return Objects.equals(getUrl(), that.getUrl()) && Objects.equals(getMethods(), that.getMethods()) && Objects.equals(getMediaTypes(), that.getMediaTypes()) && Objects.equals(getAuthentication(), that.getAuthentication()); }
@Test public void shouldIgnoreNullValues() throws JsonProcessingException { final ServiceDependency dependency = new ServiceDependency(null, null, "", "", "", null, null, null, null, null); final String json = new ObjectMapper().writeValueAsString(dependency); assertThat(json).isEqualTo("{\"name\":\"\",\"description\":\"\",\"type\":\"\",\"subtype\":\"\",\"criticality\":{\"level\":\"NOT_SPECIFIED\",\"disasterImpact\":\"Not Specified\"},\"expectations\":{\"availability\":\"NOT_SPECIFIED\",\"performance\":\"NOT_SPECIFIED\"},\"url\":\"\",\"methods\":[],\"mediaTypes\":[],\"authentication\":\"\"}"); }
@Override public int hashCode() { return hash(super.hashCode(), getUrl(), getMethods(), getMediaTypes(), getAuthentication()); }
public DependencyRepresentation(final ExternalDependency dependency) { name = dependency.getName(); description = dependency.getDescription(); type = dependency.getType() + "/" + dependency.getSubtype(); criticality = dependency.getCriticality(); expectations = dependency.getExpectations(); if (dependency instanceof ServiceDependency) { final ServiceDependency serviceDependency = (ServiceDependency) dependency; url = serviceDependency.getUrl(); methods = valueOf(serviceDependency.getMethods()); mediatypes = serviceDependency.getMediaTypes(); authentication = serviceDependency.getAuthentication(); } else { @SuppressWarnings("unchecked") final List<Datasource> datasources = ((DatasourceDependency) dependency).getDatasources(); this.datasources = datasources.stream().map(Datasource::toString).collect(toList()); } }