2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.mielecloud.internal.webservice.api.json;
15 import static org.junit.jupiter.api.Assertions.*;
17 import java.io.IOException;
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.junit.jupiter.api.Test;
22 import com.google.gson.Gson;
25 * @author Björn Lange - Initial contribution
28 public class StateTest {
30 public void testNullRemainingTimeInJsonCausesRemainingTimeListToBeNull() throws IOException {
32 String json = "{ \"remainingTime\": null, \"startTime\": [0, 0], \"targetTemperature\": [{}], \"temperature\": [{}], \"elapsedTime\": [0, 0] }";
35 State state = new Gson().fromJson(json, State.class);
38 assertFalse(state.getRemainingTime().isPresent());
42 public void testNullStartTimeInJsonCausesStartTimeListToBeNull() throws IOException {
44 String json = "{ \"remainingTime\": [0, 0], \"startTime\": null, \"targetTemperature\": [{}], \"temperature\": [{}], \"elapsedTime\": [0, 0] }";
47 State state = new Gson().fromJson(json, State.class);
50 assertFalse(state.getStartTime().isPresent());
54 public void testNullElapsedTimeInJsonCausesElapsedTimeListToBeNull() throws IOException {
56 String json = "{ \"remainingTime\": [0, 0], \"startTime\": [0, 0], \"targetTemperature\": [{}], \"temperature\": [{}], \"elapsedTime\": null }";
59 State state = new Gson().fromJson(json, State.class);
62 assertFalse(state.getElapsedTime().isPresent());
66 public void testNullTargetTemperatureInJsonIsConvertedToEmptyList() throws IOException {
68 String json = "{ \"remainingTime\": [0, 0], \"startTime\": [0, 0], \"targetTemperature\": null, \"temperature\": [{}], \"elapsedTime\": [0, 0] }";
71 State state = new Gson().fromJson(json, State.class);
74 assertNotNull(state.getTargetTemperature());
75 assertTrue(state.getTargetTemperature().isEmpty());
79 public void testNullTemperatureInJsonIsConvertedToEmptyList() throws IOException {
81 String json = "{ \"remainingTime\": [0, 0], \"startTime\": [0, 0], \"targetTemperature\": [{}], \"temperature\": null, \"elapsedTime\": [0, 0] }";
84 State state = new Gson().fromJson(json, State.class);
87 assertNotNull(state.getTemperature());
88 assertTrue(state.getTemperature().isEmpty());