/** * Builds a ServiceDependency instance. * * @return service dependency */ public DatasourceDependency build() { return new DatasourceDependency(name, description, type, subtype, datasources, criticality, expectations); } }
/** * Returns a builder instance that is initialized using a prototype DatasourceDependency. * <p> * All values of the prototype are copied. * </p> * @param prototype the prototype dependency * @return DatasourceDependencyBuilder */ public static DatasourceDependencyBuilder copyOf(final DatasourceDependency prototype) { return new DatasourceDependencyBuilder() .withName(prototype.getName()) .withDescription(prototype.getDescription()) .withType(prototype.getType()) .withSubtype(prototype.getSubtype()) .withDatasources(prototype.getDatasources()) .withCriticality(prototype.getCriticality()) .withExpectations(prototype.getExpectations()); }
@Test public void shouldBuildRedisDatasource() { DatasourceDependency dependency = redisDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("Redis"); }
@Test public void shouldBuildDatasourceDependency() { final DatasourceDependency dependency = datasourceDependency(datasource("foo:42/bar")) .withType("test") .withSubtype("unittest") .withName("name") .withDescription("description") .build(); assertThat(dependency.getName()).isEqualTo("name"); assertThat(dependency.getDescription()).isEqualTo("description"); assertThat(dependency.getType()).isEqualTo("test"); assertThat(dependency.getSubtype()).isEqualTo("unittest"); assertThat(dependency.getDatasources()).contains(datasource("foo", 42, "bar")); }
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof DatasourceDependency)) return false; if (!super.equals(o)) return false; DatasourceDependency that = (DatasourceDependency) o; return Objects.equals(getDatasources(), that.getDatasources()); }
@Test public void shouldBuildMongoDatasource() { DatasourceDependency dependency = mongoDependency(singletonList(datasource("foo"))).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("MongoDB"); }
@Override public String toString() { return "DatasourceDependency{" + "datasources=" + getDatasources() + "} " + super.toString(); } }
@Test public void shouldBuildElasticSearchDatasource() { DatasourceDependency dependency = elasticSearchDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("ElasticSearch"); }
@Override public int hashCode() { return Objects.hash(super.hashCode(), getDatasources()); }
@Test public void shouldIgnoreNullValues() throws JsonProcessingException { final DatasourceDependency dependency = new DatasourceDependency(null, null, "", "", emptyList(), 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\"},\"datasources\":[]}"); }
@Test public void shouldBuildKafkaDatasource() { DatasourceDependency dependency = kafkaDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("queue"); assertThat(dependency.getSubtype()).isEqualTo("Kafka"); }
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()); } }
@Test public void shouldBuildCassandraDatasource() { DatasourceDependency dependency = cassandraDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("Cassandra"); }