package de.codecentric.boot.admin.registration;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import java.io.IOException;
import org.junit.Test;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
import de.codecentric.boot.admin.client.registration.Application;
public class ApplicationTest {
@Test
public void test_json_format() throws JsonProcessingException, IOException {
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().build();
Application app = Application.create("test").withHealthUrl("http://health")
.withServiceUrl("http://service").withManagementUrl("http://management").build();
DocumentContext json = JsonPath.parse(objectMapper.writeValueAsString(app));
assertThat((String)json.read("$.name")).isEqualTo("test");
assertThat((String)json.read("$.serviceUrl")).isEqualTo("http://service");
assertThat((String)json.read("$.managementUrl")).isEqualTo("http://management");
assertThat((String)json.read("$.healthUrl")).isEqualTo("http://health");
}
@Test
public void test_equals_hashCode() {
Application a1 = Application.create("foo").withHealthUrl("healthUrl")
.withManagementUrl("mgmt").withServiceUrl("svc").build();
Application a2 = Application.create("foo").withHealthUrl("healthUrl")
.withManagementUrl("mgmt").withServiceUrl("svc").build();
assertThat(a1, is(a2));
assertThat(a1.hashCode(), is(a2.hashCode()));
Application a3 = Application.create("foo").withHealthUrl("healthUrl2")
.withManagementUrl("mgmt").withServiceUrl("svc").build();
assertThat(a1, not(is(a3)));
assertThat(a2, not(is(a3)));
}
}