package simple.escp.data; import org.junit.Before; import org.junit.Test; import javax.json.JsonObject; import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import static org.junit.Assert.*; public class JsonDataSourceTest { private String jsonString; @Before public void setup() { jsonString = "{" + "\"name\": \"Steven\"," + "\"age\": 28," + "\"registered\": true," + "\"address\": {" + "\"line1\": \"address line 1\"," + "\"line2\": \"address line 2\"" + "}," + "\"history\": [" + "{ \"date\": 1, \"value\": 10 }," + "{ \"date\": 2, \"value\": 20 }," + "{ \"date\": 3, \"value\": 30 }" + "]" + "}"; } @Test public void hasMember() { JsonDataSource ds = new JsonDataSource(jsonString); assertTrue(ds.has("name")); assertTrue(ds.has("age")); assertTrue(ds.has("registered")); assertTrue(ds.has("address")); assertTrue(ds.has("history")); assertFalse(ds.has("unknown")); } @Test public void getMember() { JsonDataSource ds = new JsonDataSource(jsonString); assertEquals("Steven", ds.get("name")); assertEquals(new BigDecimal("28"), ds.get("age")); assertEquals(true, ds.get("registered")); assertEquals("address line 1", ((JsonObject)ds.get("address")).getString("line1")); assertEquals("address line 2", ((JsonObject)ds.get("address")).getString("line2")); assertEquals(3, ((List)ds.get("history")).size()); } @Test public void getMembers() { JsonDataSource ds = new JsonDataSource(jsonString); List<String> result = Arrays.asList(ds.getMembers()); assertTrue(result.contains("name")); assertTrue(result.contains("age")); assertTrue(result.contains("registered")); assertTrue(result.contains("address")); assertTrue(result.contains("history")); } }