package de.codecentric.boot.admin.model;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import org.junit.Test;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
public class InfoTest {
private ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().build();
@Test
public void test_json_serialize() throws Exception {
Info info = Info.from(Collections.singletonMap("foo", "bar"));
String json = objectMapper.writeValueAsString(info);
DocumentContext doc = JsonPath.parse(json);
assertThat(doc.read("$.foo", String.class)).isEqualTo("bar");
}
@Test
public void test_retain_order() {
Map<String, String> map = new LinkedHashMap<>();
map.put("z", "1");
map.put("x", "2");
Iterator<?> iter = Info.from(map).getValues().entrySet().iterator();
assertThat(iter.next()).hasFieldOrPropertyWithValue("key", "z")
.hasFieldOrPropertyWithValue("value", "1");
assertThat(iter.next()).hasFieldOrPropertyWithValue("key", "x")
.hasFieldOrPropertyWithValue("value", "2");
}
}