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 ModbusWriteResponseMessageTest {
30 public void Before() {
34 public void createMessage1Test() throws NibeHeatPumpException {
35 final String okMessage = "5C00206C01014C";
36 ModbusWriteResponseMessage m = new ModbusWriteResponseMessage.MessageBuilder().result(true).build();
37 byte[] byteMessage = m.decodeMessage();
38 assertEquals(okMessage, HexUtils.bytesToHex(byteMessage));
42 public void createMessage2Test() throws NibeHeatPumpException {
43 final String okMessage = "5C00206C01004D";
44 ModbusWriteResponseMessage m = new ModbusWriteResponseMessage.MessageBuilder().result(false).build();
45 byte[] byteMessage = m.decodeMessage();
46 assertEquals(okMessage, HexUtils.bytesToHex(byteMessage));
50 public void parseSuccMessageTest() throws NibeHeatPumpException {
51 final String message = "5C00206C01014C";
52 byte[] byteMessage = HexUtils.hexToBytes(message);
53 ModbusWriteResponseMessage m = new ModbusWriteResponseMessage(byteMessage);
54 assertEquals(true, m.isSuccessfull());
58 public void parseFailMessageTest() throws NibeHeatPumpException {
59 final String strMessage = "5C00206C01004D";
60 final byte[] byteMessage = HexUtils.hexToBytes(strMessage);
61 ModbusWriteResponseMessage m = new ModbusWriteResponseMessage(byteMessage);
62 assertEquals(false, m.isSuccessfull());
66 public void badCrcTest() {
67 final String strMessage = "5C00206C01004A";
68 final byte[] msg = HexUtils.hexToBytes(strMessage);
69 assertThrows(NibeHeatPumpException.class, () -> new ModbusWriteResponseMessage(msg));
73 public void notWriteResponseMessageTest() {
74 final String strMessage = "5C00206B060102030405064A";
75 final byte[] byteMessage = HexUtils.hexToBytes(strMessage);
76 assertThrows(NibeHeatPumpException.class, () -> new ModbusWriteResponseMessage(byteMessage));