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