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.nibeheatpump.internal.message;
15 import static org.junit.jupiter.api.Assertions.*;
17 import org.junit.jupiter.api.BeforeEach;
18 import org.junit.jupiter.api.Test;
19 import org.openhab.binding.nibeheatpump.internal.NibeHeatPumpException;
20 import org.openhab.core.util.HexUtils;
23 * Tests cases for {@link ModbusReadRequestMessage}.
25 * @author Pauli Anttila - Initial contribution
27 public class ModbusWriteRequestMessageTest {
30 public void Before() {
33 final int coilAddress = 12345;
34 final int value = 987654;
35 final String okMessage = "C06B06393006120F00BF";
38 public void createMessageTest() throws NibeHeatPumpException {
39 ModbusWriteRequestMessage m = new ModbusWriteRequestMessage.MessageBuilder().coilAddress(coilAddress)
40 .value(value).build();
41 byte[] byteMessage = m.decodeMessage();
42 assertEquals(okMessage, HexUtils.bytesToHex(byteMessage));
46 public void parseMessageTest() throws NibeHeatPumpException {
47 final byte[] byteMessage = HexUtils.hexToBytes(okMessage);
48 ModbusWriteRequestMessage m = new ModbusWriteRequestMessage(byteMessage);
49 assertEquals(coilAddress, m.getCoilAddress());
50 assertEquals(value, m.getValue());
54 public void badCrcTest() {
55 final String strMessage = "C06B06393006120F00BA";
56 final byte[] msg = HexUtils.hexToBytes(strMessage);
57 assertThrows(NibeHeatPumpException.class, () -> new ModbusWriteRequestMessage(msg));
61 public void notWriteRequestMessageTest() {
62 final String strMessage = "C06A06393006120F00BF";
63 final byte[] byteMessage = HexUtils.hexToBytes(strMessage);
64 assertThrows(NibeHeatPumpException.class, () -> new ModbusWriteRequestMessage(byteMessage));