package org.openhab.habdroid.model; import org.json.JSONObject; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; import static org.mockito.Mockito.mock; @RunWith(MockitoJUnitRunner.class) public class OpenHAB2WidgetTest { OpenHABWidget rootWidget = mock(OpenHAB2Widget.class); @Test public void getIconPath_iconExists_returnIconUrlToIconServlet() throws Exception { OpenHABWidget sut = OpenHAB2Widget.createOpenHABWidgetFromJson(rootWidget, createJSONObject(), "PNG"); assertEquals("icon/groupicon?state=OFF&format=PNG", sut.getIconPath()); } @Test public void testCreateOpenHABWidgetFromJson_createsOpenHAB2Widget() throws Exception { OpenHABWidget sut = OpenHAB2Widget.createOpenHABWidgetFromJson(rootWidget, createJSONObject(), "PNG"); assertTrue(sut instanceof OpenHAB2Widget); } private JSONObject createJSONObject() throws Exception { String json = "{\n" + " \"widgetId\": \"demo\",\n" + " \"type\": \"Group\",\n" + " \"label\": \"Group1\",\n" + " \"icon\": \"groupicon\",\n" + " \"url\": \"http://localhost/url\",\n" + " \"minValue\": \"0.0\",\n" + " \"maxValue\": \"10.0\",\n" + " \"step\": \"1\",\n" + " \"refresh\": \"10\",\n" + " \"period\": \"D\",\n" + " \"service\": \"D\",\n" + " \"height\": \"10\",\n" + " \"iconcolor\": \"white\",\n" + " \"labelcolor\": \"white\",\n" + " \"valuecolor\": \"white\",\n" + " \"mappings\": [{\n" + " \"command\": \"ON\",\n" + " \"label\": \"On\"\n" + " }],\n" + " \"item\": {\n" + " \"type\": \"GroupItem\",\n" + " \"name\": \"group1\",\n" + " \"state\": \"OFF\",\n" + " \"link\": \"http://localhost/rest/items/group1\"\n" + " },\n" + " \"linkedPage\": {\n" + " \"id\": \"0001\",\n" + " \"title\": \"LinkedPage\",\n" + " \"icon\": \"linkedpageicon\",\n" + " \"link\": \"http://localhost/rest/sitemaps/demo/0001\",\n" + " \"leaf\": \"false\"\n" + " },\n" + " \"widgets\": [{ \"widgetId\": \"demo11\" }]\n" + " }"; return new JSONObject(json); } }