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