import com.fasterxml.jackson.databind.node.ObjectNode; import mock.MockJsonSerializable; import models.services.JsonService; import org.junit.Test; import java.util.*; import static org.fest.assertions.Assertions.*; /** * Tests for JsonService. */ public class JsonTest { /** * Test JsonService method getObjectNodeFromMap() */ @Test public void testGetObjectNodeFromMap() { Date date = new Date(); Map<String, Object> map = new HashMap<>(); map.put("String", "Hello World"); map.put("Integer", 1000); map.put("Long", 2000L); map.put("Date", date); map.put("Object", new Object()); ObjectNode testNode = JsonService.getInstance().getObjectNodeFromMap(map); assertThat(testNode).isNotNull(); assertThat(testNode.has("String")).isTrue(); assertThat(testNode.get("String").asText()).contains("Hello World"); assertThat(testNode.has("Integer")).isTrue(); assertThat(testNode.get("Integer").asInt()).isEqualTo(1000); assertThat(testNode.has("Long")).isTrue(); assertThat(testNode.get("Long").asLong()).isEqualTo(2000L); assertThat(testNode.has("Date")).isTrue(); assertThat(testNode.get("Date").asLong()).isEqualTo(date.getTime()); assertThat(testNode.has("Object")).isTrue(); assertThat(testNode.get("Object").asText()).contains("java.lang.Object"); assertThat(testNode.has("Nothing")).isFalse(); } /** * Test JsonService method getJsonList() */ @Test public void testGetJsonList() { List<MockJsonSerializable> list = new ArrayList<>(); list.add(new MockJsonSerializable()); list.add(new MockJsonSerializable()); list.add(new MockJsonSerializable()); list.add(new MockJsonSerializable()); list.add(new MockJsonSerializable()); List<ObjectNode> testList = JsonService.getInstance().getJsonList(list); assertThat(testList).isNotNull(); assertThat(testList.size()).isEqualTo(list.size()); for (ObjectNode node : testList) { assertThat(node.has("class_name")).isTrue(); assertThat(node.has("time")).isTrue(); assertThat(node.has("random")).isTrue(); assertThat(node.has("nothing")).isFalse(); assertThat(node.get("class_name").asText()).contains("MockJsonSerializable"); } } }