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.boschshc.internal.services.batterylevel;
15 import static org.junit.jupiter.api.Assertions.*;
17 import java.util.ArrayList;
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;
29 * Unit tests for {@link BatteryLevel}.
31 * @author David Pace - Initial contribution
35 class BatteryLevelTest {
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"));
53 void testFromDeviceServiceData() {
54 DeviceServiceData deviceServiceData = new DeviceServiceData();
55 assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
57 Faults faults = new Faults();
58 deviceServiceData.faults = faults;
59 assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
61 ArrayList<Fault> entries = new ArrayList<>();
62 faults.entries = entries;
63 assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
65 Fault fault = new Fault();
67 assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
69 fault.category = "WARNING";
70 fault.type = "LOW_BATTERY";
71 assertSame(BatteryLevel.LOW_BATTERY, BatteryLevel.fromDeviceServiceData(deviceServiceData));
73 fault.type = "CRITICAL_LOW";
74 assertSame(BatteryLevel.CRITICAL_LOW, BatteryLevel.fromDeviceServiceData(deviceServiceData));
76 fault.type = "CRITICALLY_LOW_BATTERY";
77 assertSame(BatteryLevel.CRITICALLY_LOW_BATTERY, BatteryLevel.fromDeviceServiceData(deviceServiceData));
80 assertSame(BatteryLevel.OK, BatteryLevel.fromDeviceServiceData(deviceServiceData));
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());
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());