package com.thoughtworks.calabash.android.unit; import com.thoughtworks.calabash.android.*; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.map.ObjectMapper; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; public class TreeNodeBuilderTest { @Test public void shouldCreateTreeNodeFromJsonNode() throws Exception { CalabashWrapper calabashWrapper = mock(CalabashWrapper.class); final String jsonString = TestUtils.readFileFromResources("simple-button.json"); final JsonNode jsonNode = new ObjectMapper().readTree(jsonString).get(0); final TreeNodeBuilder treeNodeBuilder = new TreeNodeBuilder(calabashWrapper); final TreeNode actualTreeNode = treeNodeBuilder.buildFrom(jsonNode, null); final UIElement data = actualTreeNode.getData(); final JsonNode rect = jsonNode.get("rect"); final Rect expectedRect = new Rect(rect.get("x").getDoubleValue(), rect.get("y").getDoubleValue(), rect.get("width").getDoubleValue(), rect.get("height").getDoubleValue(), rect.get("center_x").getDoubleValue(), rect.get("center_y").getDoubleValue()); assertEquals(jsonNode.get("id").getTextValue(), data.getId()); assertEquals(jsonNode.get("type").getTextValue(), data.getElementClass()); assertEquals(expectedRect, data.getRect()); assertEquals(jsonNode.get("value").getTextValue(), data.getText()); assertEquals(jsonNode.get("enabled").getBooleanValue(), data.isEnabled()); } }