]> git.basschouten.com Git - openhab-addons.git/blob
d8ac8049da807b0208c12f6b938a7ee00ae1cec9
[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.boschshc.internal.services.batterylevel;
14
15 import static org.junit.jupiter.api.Assertions.*;
16
17 import java.util.ArrayList;
18
19 import org.junit.jupiter.api.Test;
20 import org.openhab.binding.boschshc.internal.devices.bridge.dto.DeviceServiceData;
21 import org.openhab.binding.boschshc.internal.devices.bridge.dto.Fault;
22 import org.openhab.binding.boschshc.internal.devices.bridge.dto.Faults;
23 import org.openhab.core.library.types.DecimalType;
24 import org.openhab.core.library.types.OnOffType;
25 import org.openhab.core.types.UnDefType;
26
27 /**
28  * Unit tests for {@link BatteryLevel}.
29  *
30  * @author David Pace - Initial contribution
31  *
32  */
33 class BatteryLevelTest {
34
35     @Test
36     void testGet() {
37         assertSame(BatteryLevel.OK, BatteryLevel.get("OK"));
38         assertSame(BatteryLevel.OK, BatteryLevel.get("ok"));
39         assertSame(BatteryLevel.LOW_BATTERY, BatteryLevel.get("LOW_BATTERY"));
40         assertSame(BatteryLevel.LOW_BATTERY, BatteryLevel.get("low_battery"));
41         assertSame(BatteryLevel.CRITICAL_LOW, BatteryLevel.get("CRITICAL_LOW"));
42         assertSame(BatteryLevel.CRITICAL_LOW, BatteryLevel.get("critical_low"));
43         assertSame(BatteryLevel.CRITICALLY_LOW_BATTERY, BatteryLevel.get("CRITICALLY_LOW_BATTERY"));
44         assertSame(BatteryLevel.CRITICALLY_LOW_BATTERY, BatteryLevel.get("critically_low_battery"));
45         assertSame(BatteryLevel.NOT_AVAILABLE, BatteryLevel.get("NOT_AVAILABLE"));
46         assertSame(BatteryLevel.NOT_AVAILABLE, BatteryLevel.get("not_available"));
47         assertNull(BatteryLevel.get("foo"));
48     }
49
50     @Test
51     void testFromDeviceServiceData() {
52         DeviceServiceData deviceServiceData = new DeviceServiceData();
53         assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
54
55         Faults faults = new Faults();
56         deviceServiceData.faults = faults;
57         assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
58
59         ArrayList<Fault> entries = new ArrayList<>();
60         faults.entries = entries;
61         assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
62
63         Fault fault = new Fault();
64         entries.add(fault);
65         assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
66
67         fault.category = "WARNING";
68         fault.type = "LOW_BATTERY";
69         assertSame(BatteryLevel.LOW_BATTERY, BatteryLevel.fromDeviceServiceData(deviceServiceData));
70
71         fault.type = "CRITICAL_LOW";
72         assertSame(BatteryLevel.CRITICAL_LOW, BatteryLevel.fromDeviceServiceData(deviceServiceData));
73
74         fault.type = "CRITICALLY_LOW_BATTERY";
75         assertSame(BatteryLevel.CRITICALLY_LOW_BATTERY, BatteryLevel.fromDeviceServiceData(deviceServiceData));
76
77         fault.type = "FOO";
78         assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
79     }
80
81     @Test
82     void testToState() {
83         assertEquals(new DecimalType(100), BatteryLevel.OK.toState());
84         assertEquals(new DecimalType(10), BatteryLevel.LOW_BATTERY.toState());
85         assertEquals(new DecimalType(1), BatteryLevel.CRITICAL_LOW.toState());
86         assertEquals(new DecimalType(1), BatteryLevel.CRITICALLY_LOW_BATTERY.toState());
87         assertEquals(UnDefType.UNDEF, BatteryLevel.NOT_AVAILABLE.toState());
88     }
89
90     @Test
91     void testToLowBatteryState() {
92         assertEquals(OnOffType.OFF, BatteryLevel.OK.toLowBatteryState());
93         assertEquals(OnOffType.ON, BatteryLevel.LOW_BATTERY.toLowBatteryState());
94         assertEquals(OnOffType.ON, BatteryLevel.CRITICAL_LOW.toLowBatteryState());
95         assertEquals(OnOffType.ON, BatteryLevel.CRITICALLY_LOW_BATTERY.toLowBatteryState());
96         assertEquals(OnOffType.OFF, BatteryLevel.NOT_AVAILABLE.toLowBatteryState());
97     }
98 }