]> git.basschouten.com Git - openhab-addons.git/blob
5a02eb4ecf16e57ec67fc37bb1e5e261f386071b
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2022 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
14 package org.openhab.binding.nobohub.internal.model;
15
16 import static org.junit.jupiter.api.Assertions.assertEquals;
17 import static org.junit.jupiter.api.Assertions.assertNull;
18
19 import java.time.LocalDateTime;
20 import java.time.Month;
21
22 import org.eclipse.jdt.annotation.NonNullByDefault;
23 import org.junit.jupiter.api.Test;
24
25 /**
26  * Unit tests for Override model object.
27  *
28  * @author Jørgen Austvik - Initial contribution
29  */
30 @NonNullByDefault
31 public class OverridePlanTest {
32
33     @Test
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());
43     }
44
45     @Test
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());
56     }
57
58     @Test
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());
68     }
69
70     @Test
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"));
74     }
75
76     @Test
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"));
81     }
82
83     @Test
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"));
89     }
90 }