@Test public void checkTargetTime() { ArrayList<Map.Entry<Object, Class>> wanted = new ArrayList<>(); wanted.add(new AbstractMap.SimpleEntry<>("levels", JSONArray.class)); wanted.add(new AbstractMap.SimpleEntry<>(0, JSONObject.class)); wanted.add(new AbstractMap.SimpleEntry<>("conditions", JSONArray.class)); wanted.add(new AbstractMap.SimpleEntry<>(0, JSONObject.class)); wanted.add(new AbstractMap.SimpleEntry<>("targetTime", JSONObject.class)); Object t = JsonSearcher.lookFor(description, wanted); JSONObject targetTime = (JSONObject) t; assertEquals(WEEK_PERIOD.WEEK_DAYS.toString(), targetTime.getString("days")); assertEquals(DAY_MOMENT.MORNING.toString(), targetTime.getString("hours")); }
@Test public void checkImprovement() { ArrayList<Map.Entry<Object, Class>> wanted = new ArrayList<>(); wanted.add(new AbstractMap.SimpleEntry<>("levels", JSONArray.class)); wanted.add(new AbstractMap.SimpleEntry<>(0, JSONObject.class)); wanted.add(new AbstractMap.SimpleEntry<>("conditions", JSONArray.class)); wanted.add(new AbstractMap.SimpleEntry<>(1, JSONObject.class)); Object i = JsonSearcher.lookFor(description, wanted); JSONObject improvement = (JSONObject) i; assertEquals(IMPROVEMENT_TYPE.INCREASE.toString(), improvement.getString("improvementType")); assertEquals(LAST_MONTH.toString(), improvement.getString("referencePeriod")); assertEquals("SENSOR", improvement.getString("symbolicName")); assertEquals(50, improvement.getInt("threshold")); }
@Test public void checkOperands() { ArrayList<Map.Entry<Object, Class>> wanted = new ArrayList<>(); wanted.add(new AbstractMap.SimpleEntry<>("levels", JSONArray.class)); wanted.add(new AbstractMap.SimpleEntry<>(0, JSONObject.class)); wanted.add(new AbstractMap.SimpleEntry<>("conditions", JSONArray.class)); wanted.add(new AbstractMap.SimpleEntry<>(0, JSONObject.class)); wanted.add(new AbstractMap.SimpleEntry<>("expression", JSONObject.class)); Object e = JsonSearcher.lookFor(description, wanted); JSONObject expression = (JSONObject) e; assertNotNull(expression.getJSONObject("comparator").getString("type")); assertNotNull(expression.getJSONObject("leftOperand")); assertNotNull(expression.getJSONObject("leftOperand").getString("symbolicName")); assertNotNull(expression.getJSONObject("rightOperand")); assertNotNull(expression.getJSONObject("rightOperand").getInt("value")); }