/*! * * Copyright (c) 2020-2025 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file tst_messaging.cpp * \author (last) Behrouz NematiPour * \date (last) 22-Feb-2024 * \author (original) Behrouz NematiPour * \date (original) 21-Apr-2020 * */ #include "tst_messaging.h" // Qt // Project #include "main.h" #include "MessageInterpreter.h" #include "MessageBuilder.h" #include "MAdjustPowerOff.h" #include "MessageDispatcher.h" #include "AlarmGenerator.h" using namespace Can; tst_messaging::tst_messaging(QObject *parent) : QObject(parent) { } /*! * \brief tst_messaging::tst_MessageInterpreter_isType * \details Tests MessageInterpreter isType method */ void tst_messaging::tst_MessageInterpreter_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_AdjustBloodDialysateReq; msg.data = {}; QVERIFY( iMsg.isType(msg, Gui::GuiActionType::ID_AdjustBloodDialysateReq)); QVERIFY(! iMsg.isType(msg, Gui::GuiActionType::ID_BloodFlow)); } /*! * \brief tst_messaging::tst_MessageInterpreter_isPayloadLenValid * \details Tests MessageInterpreter isPayloadLenValid method */ void tst_messaging::tst_MessageInterpreter_isPayloadLenValid() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_AdjustBloodDialysateReq; msg.data = {}; QVERIFY( ! iMsg.isPayloadLenValid(msg, Gui::GuiActionType::ID_AdjustBloodDialysateReq)); } /*! * \brief tst_messaging::tst_MessageInterpreter_isPayloadLenValid * \details Tests MessageInterpreter isPayloadLenValid method */ void tst_messaging::tst_MessageInterpreter_isPayloadLenValid_undefined() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = static_cast(-1); msg.data = {}; QVERIFY( ! iMsg.isPayloadLenValid(msg, msg.actionId)); } /*! * \brief tst_messaging::tst_MessageInterpreter_powerOffData * \details Tests MessageInterpreter powerOffData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_powerOffData() { Can::MessageInterpreter iMsg; Can_Id canId = Can::Can_Id::eChlid_UI_HD; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_PowerOff; msg.data = {}; msg.can_id = canId; QVariantList data; QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! * \brief tst_messaging::tst_MessageInterpreter_bloodFlowData * \details Tests MessageInterpreter bloodFlowData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_bloodFlowData() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_BloodFlow; msg.data = {}; QVariantList data; QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_dialysateInletFlowData * \details Tests MessageInterpreter dialysateInletFlowData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_dialysateInletFlowData() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_DialysateInletFlow; msg.data = {}; QVariantList data; QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_dialysateOutletFlowData * \details Tests MessageInterpreter dialysateOutletFlowData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_dialysateOutletFlowData() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_DialysateOutletFlow; msg.data = {}; QVariantList data; QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_treatmentTime * \details Tests MessageInterpreter treatmentTime method Message payload length check */ void tst_messaging::tst_MessageInterpreter_treatmentTime() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_TreatmentTime; msg.data = {}; QVariantList data; QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_pressureOcclusionData * \details Tests MessageInterpreter pressureOcclusionData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_pressureOcclusionData() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_PressureOcclusion; msg.data = {}; QVariantList data; QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustBloodDialysateData_isType * \details Tests MessageInterpreter adjustBloodDialysateData method Message Type check */ void tst_messaging::tst_MessageInterpreter_adjustBloodDialysateData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustBloodDialysateData_payloadLen * \details Tests MessageInterpreter adjustBloodDialysateData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_adjustBloodDialysateData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_AdjustBloodDialysateRsp; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustDurationData_isType * \details Tests MessageInterpreter adjustDurationData method Message Type check */ void tst_messaging::tst_MessageInterpreter_adjustDurationData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustDurationData_payloadLen * \details Tests MessageInterpreter adjustDurationData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_adjustDurationData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_AdjustDurationRsp; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationEditData_isType * \details Tests MessageInterpreter adjustUltrafiltrationEditData method Message Type check */ void tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationEditData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.adjustUltrafiltrationEdit(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationEditData_payloadLen * \details Tests MessageInterpreter adjustUltrafiltrationEditData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationEditData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.adjustUltrafiltrationEdit(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationConfirmData_isType * \details Tests MessageInterpreter adjustUltrafiltrationConfirmData method Message Type check */ void tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationConfirmData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.adjustUltrafiltrationConfirm(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationConfirmData_payloadLen * \details Tests MessageInterpreter adjustUltrafiltrationConfirmData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_adjustUltrafiltrationConfirmData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.adjustUltrafiltrationConfirm(msg, list)); } /*! * \brief tst_MessageInterpreter_Alarms * \details Tests the message interpreter handling of empty HD messages */ void tst_messaging::tst_MessageInterpreter_HD_emptyMessages() { gDisableUnhandledReport = true; Can::MessageInterpreter interpreter; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_AlarmTriggered; msg.data = {}; QVariantList list; QList actionTypes = { Gui::GuiActionType::ID_AlarmTriggered, Gui::GuiActionType::ID_AlarmCleared, Gui::GuiActionType::ID_TreatmentStates, }; foreach (const Gui::GuiActionType &each, actionTypes) { msg.actionId = each; QVERIFY(! interpreter.interpretMessage_HD(msg, list)); } msg.actionId = Gui::GuiActionType::ID_RawData; QVERIFY(!interpreter.interpretMessage_HD(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_treatmentRangesData_isType * \details Tests MessageInterpreter treatmentRangesData method Message Type check */ void tst_messaging::tst_MessageInterpreter_treatmentRangesData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_treatmentRangesData_payloadLen * \details Tests MessageInterpreter treatmentRangesData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_treatmentRangesData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_TreatmentRanges; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_loadCellReadingsData_isType * \details Tests MessageInterpreter treatmentRangesData method Message Type check */ void tst_messaging::tst_MessageInterpreter_loadCellReadingsData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_loadCellReadingsData_payloadLen * \details Tests MessageInterpreter treatmentRangesData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_loadCellReadingsData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_DGLoadCellReadingsData; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_temperatureSensorsData_isType * \details Tests MessageInterpreter treatmentRangesData method Message Type check */ void tst_messaging::tst_MessageInterpreter_temperatureSensorsData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_temperatureSensorsData_payloadLen * \details Tests MessageInterpreter temperatureSensorsData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_temperatureSensorsData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_DGTemperaturesData; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_temperatureSensorsData_isType * \details Tests MessageInterpreter canbusFaultCountData method Message Type check */ void tst_messaging::tst_MessageInterpreter_canbusFaultCountData_isType() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_Unknown; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.canbusFaultCountData(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_temperatureSensorsData_payloadLen * \details Tests MessageInterpreter canbusFaultCountData method Message payload length check */ void tst_messaging::tst_MessageInterpreter_canbusFaultCountData_payloadLen() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_CANBusFaultCount; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.canbusFaultCountData(msg, list)); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_String * \details Tests MessageInterpreter interpretMessage to handle String message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_String() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_NONE; QVERIFY(iMsg.interpretMessage(Gui::GuiActionType::ID_RawData, {}, payload, canId)); QVERIFY(payload.isEmpty()); } void tst_messaging::tst_MessageInterpreter_interpretMessage_DG_Unhandled() { Can::MessageInterpreter iMsg; QByteArray payload; Can::Message msg; msg.actionId = static_cast(-1); msg.data = {}; QVariantList list; QVERIFY( ! iMsg.interpretMessage_DG(msg, list)); QVERIFY(list.isEmpty()); } void tst_messaging::tst_MessageInterpreter_notify_fromByteArray() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_PowerOff; msg.data = {}; QVariantList list; QVERIFY( ! iMsg.notify(msg, list, Gui::GuiActionType::ID_PowerOff)); QVERIFY(list.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustBloodDialysateReq * \details Tests MessageInterpreter interpretMessage to handle AdjustBloodDialysateReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustBloodDialysateReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY(! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustBloodDialysateReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustDurationReq * \details Tests MessageInterpreter interpretMessage to handle AdjustDurationReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustDurationReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY( ! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustDurationReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AlarmSilenceReq * \details Tests MessageInterpreter interpretMessage to handle AlarmSilenceReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AlarmSilenceReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY(! iMsg.interpretMessage(Gui::GuiActionType::ID_AlarmSilenceReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationInitReq * \details Tests MessageInterpreter interpretMessage to handle AdjustUltrafiltrationInitReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationInitReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY(! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustUltrafiltrationInitReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationStateReq * \details Tests MessageInterpreter interpretMessage to handle AdjustUltrafiltrationStateReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationStateReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY(! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationEditReq * \details Tests MessageInterpreter interpretMessage to handle AdjustUltrafiltrationEditReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationEditReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY( ! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationConfirmReq * \details Tests MessageInterpreter interpretMessage to handle AdjustUltrafiltrationConfirmReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustUltrafiltrationConfirmReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY( ! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustSalineReq * \details Tests MessageInterpreter interpretMessage to handle ID_AdjustSalineReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustSalineReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY( ! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustSalineReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustHeparinReq * \details Tests MessageInterpreter interpretMessage to handle ID_AdjustHeparinReq message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustHeparinReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY( ! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustHeparinReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } void tst_messaging::tst_MessageInterpreter_interpretMessage_AdjustPressuresReq() { Can::MessageInterpreter iMsg; QByteArray payload; Can_Id canId = Can::Can_Id::eChlid_UI_HD; // if the payload is empty the len is not valid and should return false and empty payload QVERIFY( ! iMsg.interpretMessage(Gui::GuiActionType::ID_AdjustPressuresLimitsReq, {}, payload, canId)); QVERIFY(payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageInterpreter_interpretMessage_CANBusFaultCount * \details Tests MessageInterpreter interpretMessage to handle ID_CANBusFaultCount message type * if data is empty (count==0) */ void tst_messaging::tst_MessageInterpreter_interpretMessage_CANBusFaultCount() { Can::MessageInterpreter iMsg; Can::Message msg; msg.actionId = Gui::GuiActionType::ID_CANBusFaultCount; msg.data = {}; QVariantList data; QVERIFY( ! iMsg.canbusFaultCountData(msg, data)); } /*! * \brief tst_messaging::tst_MessageBuilder_addActionId * \details Tests addActionId() method usage of MessageBuilder */ void tst_messaging::tst_MessageBuilder_addActionId() { Can::MessageBuilder bMsg; QByteArray payload; QVERIFY( ! bMsg.addActionId(payload, Gui::GuiActionType::ID_Unknown)); QVERIFY( payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageBuilder_addData_shorterLen * \details Tests Data length of shorter than expected * in addData() method of MessageBuilder */ void tst_messaging::tst_MessageBuilder_addData_shorterLen() { Can::MessageBuilder bMsg; QByteArray payload; QVERIFY( ! bMsg.addData(payload, Gui::GuiActionType::ID_PowerOff, {})); QVERIFY( payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageBuilder_addData_LongerThanMax * \details Tests Data length of longer than maximum accepted * in addData() method of MessageBuilder */ void tst_messaging::tst_MessageBuilder_addData_LongerThanMax() { Can::MessageBuilder bMsg; QByteArray payload; QByteArray data; for (int i = 0; i<= Can::eLenMaxData + 1; i++ ) { data += i; } QVERIFY(bMsg.addData(payload, Gui::GuiActionType::ID_RawData, data)); QVERIFY( ! payload.isEmpty()); } /*! * \brief tst_messaging::tst_MessageBuilder_checkCRC * \details Tests checkCRC() method usage of MessageBuilder */ void tst_messaging::tst_MessageBuilder_checkCRC() { Can::MessageBuilder bMsg; QByteArray data; quint8 vExpected, vActual; QVERIFY( ! bMsg.checkCRC(data, vExpected, vActual)); } /*! * \brief tst_messaging::tst_MessageBuilder_getHeader * \details Tests getHeader() method usage of MessageBuilder */ void tst_messaging::tst_MessageBuilder_getHeader() { Can::MessageBuilder bMsg; QByteArray payload; QVERIFY(bMsg.getHeader(payload).isEmpty()); } /*! * \brief tst_messaging::tst_MessageBuilder_buildFrames_addActionId * \details Tests addActionId() method usage of MessageBuilder in buildFrames method */ void tst_messaging::tst_MessageBuilder_buildFrames_addActionId() { Can::MessageBuilder bMsg; QByteArray data; Can::FrameList framelist; Can::Sequence seq = 1; QVERIFY( ! bMsg.buildFrames(Gui::GuiActionType::ID_Unknown, data, framelist, seq)); } /*! * \brief tst_messaging::tst_MessageBuilder_buildFrames_addData * \details Tests addData() method usage of MessageBuilder in buildFrames method */ void tst_messaging::tst_MessageBuilder_buildFrames_addData() { Can::MessageBuilder bMsg; QByteArray data; Can::FrameList framelist; Can::Sequence seq = 1; QVERIFY( ! bMsg.buildFrames(Gui::GuiActionType::ID_PowerOff, data, framelist, seq)); } /*! * \brief tst_messaging::tst_MessageBuilder_buildFrames_eLenCanFrame * \details Tests canFrameLength check in buildFrames method of MessageBuilder */ void tst_messaging::tst_MessageBuilder_buildFrames_eLenCanFrame() { Can::MessageBuilder bMsg; QByteArray data; data += 0x01; data += 0x02; data += 0x03; data += 0x04; data += 0x05; data += 0x06; data += 0x07; data += 0x08; data += 0x09; Can::FrameList framelist; Can::Sequence seq = 1; QVERIFY( bMsg.buildFrames(Gui::GuiActionType::ID_RawData, data, framelist, seq)); } /*! * \brief tst_messaging::tst_MessageDispatcher_actionTransmit * \details Tests MessageDispatcher actionTransmit() */ void tst_messaging::tst_MessageDispatcher_actionTransmit() { Can::MessageDispatcher dMsg; QVariantList data; Can::Sequence seq = 1; dMsg.actionTransmit(Gui::GuiActionType::ID_AdjustBloodDialysateReq, data, seq); } /*! * \brief tst_messaging::tst_MessageDispatcher_actionTransmit * \details Tests MessageDispatcher actionTransmit() */ void tst_messaging::tst_MessageDispatcher_actionTransmit_Unknown() { Can::MessageDispatcher dMsg; QVariantList data; Can::Sequence seq = 1; dMsg.actionTransmit(Gui::GuiActionType::ID_KeepAlive, data, seq); } /*! * \brief tst_messaging::tst_AlarmGenerator_setBits_OutOfRange * \details Tests the longer list of the bits sent to AlarmGenerator::setBits method. */ void tst_messaging::tst_AlarmGenerator_setBits_OutOfRange() { quint8 len = sizeof(AlarmGenerator::TAlarms) * 8; AlarmGenerator ag; AlarmGenerator::TBits bits {0, 15, len}; // 16 is out of range QBitArray ba_actual = ag.setBits(bits); QBitArray ba_expected(len,false); ba_expected.setBit(0); ba_expected.setBit(15); QCOMPARE(ba_actual, ba_expected); }