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;
15 import static org.junit.jupiter.api.Assertions.*;
16 import static org.mockito.Mockito.*;
18 import java.util.Objects;
19 import java.util.Optional;
21 import org.eclipse.jdt.annotation.NonNullByDefault;
22 import org.eclipse.jdt.annotation.Nullable;
23 import org.junit.jupiter.api.BeforeEach;
24 import org.junit.jupiter.api.Test;
25 import org.openhab.binding.mielecloud.internal.webservice.api.json.DeviceType;
28 * @author Björn Lange - Initial contribution
31 public class CoolingDeviceTemperatureStateTest {
32 private static final Integer TEMPERATURE_0 = 8;
33 private static final Integer TEMPERATURE_1 = -10;
35 private static final Integer TARGET_TEMPERATURE_0 = 5;
36 private static final Integer TARGET_TEMPERATURE_1 = -18;
39 private DeviceState deviceState;
41 private DeviceState getDeviceState() {
42 assertNotNull(deviceState);
43 return Objects.requireNonNull(deviceState);
48 deviceState = mock(DeviceState.class);
49 when(getDeviceState().getTemperature(0)).thenReturn(Optional.of(TEMPERATURE_0));
50 when(getDeviceState().getTemperature(1)).thenReturn(Optional.of(TEMPERATURE_1));
51 when(getDeviceState().getTargetTemperature(0)).thenReturn(Optional.of(TARGET_TEMPERATURE_0));
52 when(getDeviceState().getTargetTemperature(1)).thenReturn(Optional.of(TARGET_TEMPERATURE_1));
56 public void testGetFridgeTemperaturesForFridge() {
58 when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE);
59 CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
62 Integer current = state.getFridgeTemperature().get();
63 Integer target = state.getFridgeTargetTemperature().get();
66 assertEquals(TEMPERATURE_0, current);
67 assertEquals(TARGET_TEMPERATURE_0, target);
71 public void testGetFridgeTemperaturesForFridgeFreezerCombination() {
73 when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE_FREEZER_COMBINATION);
74 CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
77 Integer current = state.getFridgeTemperature().get();
78 Integer target = state.getFridgeTargetTemperature().get();
81 assertEquals(TEMPERATURE_0, current);
82 assertEquals(TARGET_TEMPERATURE_0, target);
86 public void testGetFridgeTemperaturesForFreezer() {
88 when(getDeviceState().getRawType()).thenReturn(DeviceType.FREEZER);
89 CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
92 Optional<Integer> current = state.getFridgeTemperature();
93 Optional<Integer> target = state.getFridgeTargetTemperature();
96 assertFalse(current.isPresent());
97 assertFalse(target.isPresent());
101 public void testGetFreezerTemperaturesForFridge() {
103 when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE);
104 CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
107 Optional<Integer> current = state.getFreezerTemperature();
108 Optional<Integer> target = state.getFreezerTargetTemperature();
111 assertFalse(current.isPresent());
112 assertFalse(target.isPresent());
116 public void testGetFreezerTemperaturesForFridgeFreezerCombination() {
118 when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE_FREEZER_COMBINATION);
119 CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
122 Integer current = state.getFreezerTemperature().get();
123 Integer target = state.getFreezerTargetTemperature().get();
126 assertEquals(TEMPERATURE_1, current);
127 assertEquals(TARGET_TEMPERATURE_1, target);
131 public void testGetFreezerTemperaturesForFreezer() {
133 when(getDeviceState().getRawType()).thenReturn(DeviceType.FREEZER);
134 CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
137 Integer current = state.getFreezerTemperature().get();
138 Integer target = state.getFreezerTargetTemperature().get();
141 assertEquals(TEMPERATURE_0, current);
142 assertEquals(TARGET_TEMPERATURE_0, target);