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
14 package org.openhab.binding.nobohub.internal.model;
16 import static org.junit.jupiter.api.Assertions.assertEquals;
17 import static org.junit.jupiter.api.Assertions.assertNull;
19 import java.time.LocalDateTime;
20 import java.time.Month;
22 import org.eclipse.jdt.annotation.NonNullByDefault;
23 import org.junit.jupiter.api.Test;
26 * Unit tests for Override model object.
28 * @author Jørgen Austvik - Initial contribution
31 public class OverridePlanTest {
34 public void testParseH04DefaultOverride() throws NoboDataException {
35 OverridePlan parsed = OverridePlan.fromH04("H04 4 0 0 -1 -1 0 -1");
36 assertEquals(4, parsed.getId());
37 assertEquals(OverrideMode.NORMAL, parsed.getMode());
38 assertEquals(OverrideType.NOW, parsed.getType());
39 assertEquals(OverrideTarget.HUB, parsed.getTarget());
40 assertEquals(-1, parsed.getTargetId());
41 assertNull(parsed.startTime());
42 assertNull(parsed.endTime());
46 public void testParseB03WithStartDate() throws NoboDataException {
47 OverridePlan parsed = OverridePlan.fromH04("B03 9 3 1 202001221930 -1 0 -1");
48 assertEquals(9, parsed.getId());
49 assertEquals(OverrideMode.AWAY, parsed.getMode());
50 assertEquals(OverrideType.TIMER, parsed.getType());
51 assertEquals(OverrideTarget.HUB, parsed.getTarget());
52 assertEquals(-1, parsed.getTargetId());
53 LocalDateTime date = LocalDateTime.of(2020, Month.JANUARY, 22, 19, 30);
54 assertEquals(date, parsed.startTime());
55 assertNull(parsed.endTime());
59 public void testParseS03NoDate() throws NoboDataException {
60 OverridePlan parsed = OverridePlan.fromH04("S03 13 0 0 -1 -1 0 -1");
61 assertEquals(13, parsed.getId());
62 assertEquals(OverrideMode.NORMAL, parsed.getMode());
63 assertEquals(OverrideType.NOW, parsed.getType());
64 assertEquals(OverrideTarget.HUB, parsed.getTarget());
65 assertEquals(-1, parsed.getTargetId());
66 assertNull(parsed.startTime());
67 assertNull(parsed.endTime());
71 public void testAddA03WithStartDate() throws NoboDataException {
72 OverridePlan parsed = OverridePlan.fromH04("B03 9 3 1 202001221930 -1 0 -1");
73 assertEquals("A03 9 3 1 202001221930 -1 0 -1", parsed.generateCommandString("A03"));
77 public void testFromMode() {
78 LocalDateTime date = LocalDateTime.of(2020, Month.FEBRUARY, 21, 21, 42);
79 OverridePlan overridePlan = OverridePlan.fromMode(OverrideMode.AWAY, date);
80 assertEquals("A03 1 3 0 -1 -1 0 -1", overridePlan.generateCommandString("A03"));
84 public void testModeNames() throws NoboDataException {
85 assertEquals(OverrideMode.AWAY, OverrideMode.getByName("Away"));
86 assertEquals(OverrideMode.ECO, OverrideMode.getByName("ECO"));
87 assertEquals(OverrideMode.NORMAL, OverrideMode.getByName("Normal"));
88 assertEquals(OverrideMode.COMFORT, OverrideMode.getByName("COMFORT"));