]> git.basschouten.com Git - openhab-addons.git/blob
8e1d9c43bf716d0985d14efe0d1cab8e7f433b4e
[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.nibeheatpump.internal.message;
14
15 import static org.junit.jupiter.api.Assertions.*;
16
17 import org.junit.jupiter.api.Test;
18 import org.openhab.binding.nibeheatpump.internal.NibeHeatPumpException;
19 import org.openhab.core.util.HexUtils;
20
21 /**
22  * Tests cases for {@link ModbusReadRequestMessage}.
23  *
24  * @author Pauli Anttila - Initial contribution
25  */
26 public class ModbusReadRequestMessageTest {
27
28     private final String okMessage = "C069023930A2";
29     private final int coilAddress = 12345;
30
31     @Test
32     public void createMessageTest() throws NibeHeatPumpException {
33         ModbusReadRequestMessage m = new ModbusReadRequestMessage.MessageBuilder().coilAddress(coilAddress).build();
34         byte[] byteMessage = m.decodeMessage();
35         assertEquals(okMessage, HexUtils.bytesToHex(byteMessage));
36     }
37
38     @Test
39     public void parseMessageTest() throws NibeHeatPumpException {
40         byte[] byteMessage = HexUtils.hexToBytes(okMessage);
41         ModbusReadRequestMessage m = new ModbusReadRequestMessage(byteMessage);
42         assertEquals(coilAddress, m.getCoilAddress());
43     }
44
45     @Test
46     public void badCrcTest() {
47         final String strMessage = "C069023930A1";
48         final byte[] msg = HexUtils.hexToBytes(strMessage);
49         assertThrows(NibeHeatPumpException.class, () -> new ModbusReadRequestMessage(msg));
50     }
51
52     @Test
53     public void notReadRequestMessageTest() {
54         final String strMessage = "C169023930A2";
55         final byte[] byteMessage = HexUtils.hexToBytes(strMessage);
56         assertThrows(NibeHeatPumpException.class, () -> new ModbusReadRequestMessage(byteMessage));
57     }
58 }