]> git.basschouten.com Git - openhab-addons.git/blob
1a6e3ac188526b49e297d9d5e177d536a122c6ff
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.mielecloud.internal.webservice.api;
14
15 import static org.junit.jupiter.api.Assertions.*;
16 import static org.mockito.Mockito.*;
17
18 import java.util.Objects;
19 import java.util.Optional;
20
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;
26
27 /**
28  * @author Björn Lange - Initial contribution
29  */
30 @NonNullByDefault
31 public class CoolingDeviceTemperatureStateTest {
32     private static final Integer TEMPERATURE_0 = 8;
33     private static final Integer TEMPERATURE_1 = -10;
34
35     private static final Integer TARGET_TEMPERATURE_0 = 5;
36     private static final Integer TARGET_TEMPERATURE_1 = -18;
37
38     @Nullable
39     private DeviceState deviceState;
40
41     private DeviceState getDeviceState() {
42         assertNotNull(deviceState);
43         return Objects.requireNonNull(deviceState);
44     }
45
46     @BeforeEach
47     public void setUp() {
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));
53     }
54
55     @Test
56     public void testGetFridgeTemperaturesForFridge() {
57         // given:
58         when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE);
59         CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
60
61         // when:
62         Integer current = state.getFridgeTemperature().get();
63         Integer target = state.getFridgeTargetTemperature().get();
64
65         // then:
66         assertEquals(TEMPERATURE_0, current);
67         assertEquals(TARGET_TEMPERATURE_0, target);
68     }
69
70     @Test
71     public void testGetFridgeTemperaturesForFridgeFreezerCombination() {
72         // given:
73         when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE_FREEZER_COMBINATION);
74         CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
75
76         // when:
77         Integer current = state.getFridgeTemperature().get();
78         Integer target = state.getFridgeTargetTemperature().get();
79
80         // then:
81         assertEquals(TEMPERATURE_0, current);
82         assertEquals(TARGET_TEMPERATURE_0, target);
83     }
84
85     @Test
86     public void testGetFridgeTemperaturesForFreezer() {
87         // given:
88         when(getDeviceState().getRawType()).thenReturn(DeviceType.FREEZER);
89         CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
90
91         // when:
92         Optional<Integer> current = state.getFridgeTemperature();
93         Optional<Integer> target = state.getFridgeTargetTemperature();
94
95         // then:
96         assertFalse(current.isPresent());
97         assertFalse(target.isPresent());
98     }
99
100     @Test
101     public void testGetFreezerTemperaturesForFridge() {
102         // given:
103         when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE);
104         CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
105
106         // when:
107         Optional<Integer> current = state.getFreezerTemperature();
108         Optional<Integer> target = state.getFreezerTargetTemperature();
109
110         // then:
111         assertFalse(current.isPresent());
112         assertFalse(target.isPresent());
113     }
114
115     @Test
116     public void testGetFreezerTemperaturesForFridgeFreezerCombination() {
117         // given:
118         when(getDeviceState().getRawType()).thenReturn(DeviceType.FRIDGE_FREEZER_COMBINATION);
119         CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
120
121         // when:
122         Integer current = state.getFreezerTemperature().get();
123         Integer target = state.getFreezerTargetTemperature().get();
124
125         // then:
126         assertEquals(TEMPERATURE_1, current);
127         assertEquals(TARGET_TEMPERATURE_1, target);
128     }
129
130     @Test
131     public void testGetFreezerTemperaturesForFreezer() {
132         // given:
133         when(getDeviceState().getRawType()).thenReturn(DeviceType.FREEZER);
134         CoolingDeviceTemperatureState state = new CoolingDeviceTemperatureState(getDeviceState());
135
136         // when:
137         Integer current = state.getFreezerTemperature().get();
138         Integer target = state.getFreezerTargetTemperature().get();
139
140         // then:
141         assertEquals(TEMPERATURE_0, current);
142         assertEquals(TARGET_TEMPERATURE_0, target);
143     }
144 }