Index: unittests/tst_views.cpp =================================================================== diff -u -r4fab8841b1040c8eaa406713ff9bdc8c65b7b6ac -rf05549765024eec65ddd3e3e203560334c655ecb --- unittests/tst_views.cpp (.../tst_views.cpp) (revision 4fab8841b1040c8eaa406713ff9bdc8c65b7b6ac) +++ unittests/tst_views.cpp (.../tst_views.cpp) (revision f05549765024eec65ddd3e3e203560334c655ecb) @@ -1,16 +1,16 @@ /*! - * + * * Copyright (c) 2019-2020 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_views.cpp * \author (last) Peter Lucia * \date (last) 15-Oct-2020 * \author (original) Behrouz NematiPour * \date (original) 21-Apr-2020 - * + * */ #include "tst_views.h" @@ -20,6 +20,9 @@ #include "VTreatmentAdjustmentResponseBase.h" #include "VTreatmentAdjustmentUltrafiltrationState.h" #include "FileHandler.h" +#include "VTreatmentBegin.h" +#include "VPriming.h" +#include "VAlarmStatus.h" tst_views::tst_views(QObject *parent) : QObject(parent) { } @@ -74,27 +77,27 @@ { for (int i = 0; i < 18; ++i) { - View::VCreateTreatment view; - if (i != 0) view.set_bloodFlowRate(view.bloodFlowRateMax()); - if (i != 1) view.set_dialysateFlowRate(view.dialysateFlowRateMax()); - if (i != 2) view.set_duration(view.durationMax()); - if (i != 3) view.set_heparinDispensingRate(view.heparinDispensingRateMax()); + View::VTreatmentCreate view; + if (i != 0) view.bloodFlowRate(view.bloodFlowRateMax()); + if (i != 1) view.dialysateFlowRate(view.dialysateFlowRateMax()); + if (i != 2) view.duration(view.durationMax()); + if (i != 3) view.heparinDispensingRate(view.heparinDispensingRateMax()); + if (i != 4) view.heparinBolusVolume(view.heparinBolusVolumeMax()); + if (i != 5) view.heparinStopTime(view.heparinStopTimeMax()); + if (i != 6) view.salineBolusVolume(view.salineBolusVolumeMax()); - if (i != 4) view.set_heparinBolusVolume(view.heparinBolusVolumeMax()); - if (i != 5) view.set_heparinStopTime(view.heparinStopTimeMax()); - if (i != 6) view.set_salineBolusVolume(0); - if (i != 7) view.set_acidConcentrate(0); - if (i != 8) view.set_bicarbonateConcentrate(0); + if (i != 7) view.acidConcentrate(view.acidConcentrateMax()); + if (i != 8) view.bicarbonateConcentrate(view.bicarbonateConcentrateMax()); + if (i != 9) view.dialyzerType(view.dialyzerTypeMax()); - if (i != 9) view.set_dialyzerType(0); - if (i != 10) view.set_dialysateTemp(view.dialysateTempMax()); - if (i != 11) view.set_arterialPressureLimitLow(view.arterialPressureLimitLowMin()); - if (i != 12) view.set_arterialPressureLimitHigh(view.arterialPressureLimitHighMax()); - if (i != 13) view.set_venousPressureLimitLow(view.venousPressureLimitLowMin()); - if (i != 14) view.set_venousPressureLimitHigh(view.venousPressureLimitHighMax()); + if (i != 10) view.dialysateTemp(view.dialysateTempMax()); + if (i != 11) view.arterialPressureLimitLow(view.arterialPressureLimitLowMin()); + if (i != 12) view.arterialPressureLimitHigh(view.arterialPressureLimitHighMax()); + if (i != 13) view.venousPressureLimitLow(view.venousPressureLimitLowMin()); + if (i != 14) view.venousPressureLimitHigh(view.venousPressureLimitHighMax()); - if (i != 15) view.set_bloodPressureMeasureInterval(view.bloodPressureMeasureIntervalMax()); - if (i != 16) view.set_rinsebackFlowRate(view.rinsebackFlowRateMax()); + if (i != 15) view.bloodPressureMeasureInterval(view.bloodPressureMeasureIntervalMax()); + if (i != 16) view.rinsebackFlowRate(view.rinsebackFlowRateMax()); if (i == 17) { QCOMPARE(view.isbloodFlowRateSet, true); @@ -117,28 +120,28 @@ QCOMPARE(view.validate(view.treatmentData), true); // check getters - QCOMPARE(view.get_bloodFlowRate(), view.bloodFlowRateMax()); - QCOMPARE(view.get_dialysateFlowRate(), view.dialysateFlowRateMax()); - QCOMPARE(view.get_duration(), view.durationMax()); - QCOMPARE(view.get_heparinDispensingRate(),view.heparinDispensingRateMax()); + QCOMPARE(view.bloodFlowRate(), view.bloodFlowRateMax()); + QCOMPARE(view.dialysateFlowRate(), view.dialysateFlowRateMax()); + QCOMPARE(view.duration(), view.durationMax()); + QCOMPARE(view.heparinDispensingRate(),view.heparinDispensingRateMax()); - QCOMPARE(view.get_heparinBolusVolume(),view.heparinBolusVolumeMax()); - QCOMPARE(view.get_heparinStopTime(),view.heparinStopTimeMax()); - QCOMPARE(view.get_salineBolusVolume(), quint32(0)); - QCOMPARE(view.get_acidConcentrate(), quint32(0)); - QCOMPARE(view.get_bicarbonateConcentrate(), quint32(0)); + QCOMPARE(view.heparinBolusVolume(),view.heparinBolusVolumeMax()); + QCOMPARE(view.heparinStopTime(),view.heparinStopTimeMax()); + QCOMPARE(view.salineBolusVolume(), view.salineBolusVolumeMax()); + QCOMPARE(view.acidConcentrate(), view.acidConcentrateMax()); + QCOMPARE(view.bicarbonateConcentrate(), view.bicarbonateConcentrateMax()); - QCOMPARE(view.get_dialyzerType(), quint32(0)); - QCOMPARE(view.get_dialysateTemp(), view.dialysateTempMax()); - QCOMPARE(view.get_arterialPressureLimitLow(),view.arterialPressureLimitLowMin()); - QCOMPARE(view.get_arterialPressureLimitHigh(), view.arterialPressureLimitHighMax()); - QCOMPARE(view.get_venousPressureLimitLow(), view.venousPressureLimitLowMin()); - QCOMPARE(view.get_venousPressureLimitHigh(), view.venousPressureLimitHighMax()); + QCOMPARE(view.dialyzerType(), view.dialyzerTypeMax()); + QCOMPARE(view.dialysateTemp(), view.dialysateTempMax()); + QCOMPARE(view.arterialPressureLimitLow(),view.arterialPressureLimitLowMin()); + QCOMPARE(view.arterialPressureLimitHigh(), view.arterialPressureLimitHighMax()); + QCOMPARE(view.venousPressureLimitLow(), view.venousPressureLimitLowMin()); + QCOMPARE(view.venousPressureLimitHigh(), view.venousPressureLimitHighMax()); - QCOMPARE(view.get_bloodPressureMeasureInterval(), view.bloodPressureMeasureIntervalMax()); - QCOMPARE(view.get_rinsebackFlowRate(), view.rinsebackFlowRateMax()); + QCOMPARE(view.bloodPressureMeasureInterval(), view.bloodPressureMeasureIntervalMax()); + QCOMPARE(view.rinsebackFlowRate(), view.rinsebackFlowRateMax()); - view.onFinishedCreate(); + view.doFinishedCreate(); } else { QCOMPARE(view.validate(view.treatmentData), false); @@ -151,29 +154,28 @@ * Simulates a user selection of valid parameters * \param view VCreateTreatment object to be set with valid parameters */ -void tst_views::VCreateTreatment_simulate_valid_parameters(View::VCreateTreatment &view) +void tst_views::VCreateTreatment_simulate_valid_parameters(View::VTreatmentCreate &view) { - view.set_bloodFlowRate(view.bloodFlowRateMax()); - view.set_dialysateFlowRate(view.dialysateFlowRateMax()); - view.set_duration(view.durationMax()); - view.set_heparinDispensingRate(view.heparinDispensingRateMax()); + view.bloodFlowRate(view.bloodFlowRateMax()); + view.dialysateFlowRate(view.dialysateFlowRateMax()); + view.duration(view.durationMax()); + view.heparinDispensingRate(view.heparinDispensingRateMax()); - view.set_heparinBolusVolume(view.heparinBolusVolumeMax()); - view.set_heparinStopTime(view.heparinStopTimeMax()); - view.set_salineBolusVolume(0); - view.set_acidConcentrate(0); - view.set_bicarbonateConcentrate(0); + view.heparinBolusVolume(view.heparinBolusVolumeMax()); + view.heparinStopTime(view.heparinStopTimeMax()); + view.salineBolusVolume(view.salineBolusVolumeMax()); + view.acidConcentrate(view.acidConcentrateMax()); + view.bicarbonateConcentrate(view.bicarbonateConcentrateMax()); - view.set_dialyzerType(0); - view.set_dialysateTemp(view.dialysateTempMax()); - view.set_arterialPressureLimitLow(view.arterialPressureLimitLowMin()); - view.set_arterialPressureLimitHigh(view.arterialPressureLimitHighMax()); - view.set_venousPressureLimitLow(view.venousPressureLimitLowMin()); - view.set_venousPressureLimitHigh(view.venousPressureLimitHighMax()); + view.dialyzerType(view.dialyzerTypeMax()); + view.dialysateTemp(view.dialysateTempMax()); + view.arterialPressureLimitLow(view.arterialPressureLimitLowMin()); + view.arterialPressureLimitHigh(view.arterialPressureLimitHighMax()); + view.venousPressureLimitLow(view.venousPressureLimitLowMin()); + view.venousPressureLimitHigh(view.venousPressureLimitHighMax()); - view.set_bloodPressureMeasureInterval(view.bloodPressureMeasureIntervalMax()); - view.set_rinsebackFlowRate(view.rinsebackFlowRateMax()); - + view.bloodPressureMeasureInterval(view.bloodPressureMeasureIntervalMax()); + view.rinsebackFlowRate(view.rinsebackFlowRateMax()); } /*! @@ -195,11 +197,8 @@ obj["heparinBolusVolumeMax"] = 2000; obj["heparinStopTimeMin"] = 1000; obj["heparinStopTimeMax"] = 2000; - obj["salineBolusOptions"] = QJsonArray({ - "100 mL", - "200 mL", - "300 mL" - }); + obj["salineBolusVolumeMin"] = 100; + obj["salineBolusVolumeMax"] = 300; obj["acidConcentrateOptions"] = QJsonArray({ "08-1251-1", "08-2251-0", @@ -236,15 +235,82 @@ */ void tst_views::VCreateTreatment_validation_ranges() { - View::VCreateTreatment view; + View::VTreatmentCreate v; + // check resolutions + QCOMPARE(v.bloodFlowRateRes(), quint32(25)); + QCOMPARE(v.dialysateFlowRateRes(), quint32(50 )); + QCOMPARE(v.durationRes(), quint32(15 )); + QCOMPARE(v.heparinDispensingRateRes(), qreal(0.1)); + QCOMPARE(v.heparinBolusVolumeRes(), qreal(0.1)); + QCOMPARE(v.heparinStopTimeRes(), quint32(10 )); + QCOMPARE(v.salineBolusVolumeRes(), quint32(100)); + + QCOMPARE(v.acidConcentrateRes(), quint32(1)); + QCOMPARE(v.bicarbonateConcentrateRes(), quint32(1)); + QCOMPARE(v.dialyzerTypeRes(), quint32(1)); + + QCOMPARE(v.dialysateTempRes(), qreal(0.5)); + QCOMPARE(v.arterialPressureLimitLowRes(), qint32(10)); + QCOMPARE(v.arterialPressureLimitHighRes(), qint32(10)); + QCOMPARE(v.venousPressureLimitLowRes(), qint32(10)); + QCOMPARE(v.venousPressureLimitHighRes(), qint32(10)); + QCOMPARE(v.bloodPressureMeasureIntervalRes(), quint32(5)); + QCOMPARE(v.rinsebackFlowRateRes(), quint32(25)); + + v.bloodFlowRateRes (quint32(26)); + v.dialysateFlowRateRes (quint32(51)); + v.durationRes (quint32(16)); + v.heparinDispensingRateRes (qreal(0.2)); + v.heparinBolusVolumeRes (qreal(0.2)); + v.heparinStopTimeRes (quint32(11)); + v.salineBolusVolumeRes (quint32(101)); + + v.acidConcentrateRes (quint32(2)); + v.bicarbonateConcentrateRes (quint32(2)); + v.dialyzerTypeRes (quint32(2)); + + v.dialysateTempRes (qreal(0.6)); + v.arterialPressureLimitLowRes (qint32(11)); + v.arterialPressureLimitHighRes (qint32(11)); + v.venousPressureLimitLowRes (qint32(11)); + v.venousPressureLimitHighRes (qint32(11)); + v.bloodPressureMeasureIntervalRes (quint32(6)); + v.rinsebackFlowRateRes (quint32(26)); + + QCOMPARE(v.bloodFlowRateRes(), quint32(26)); + QCOMPARE(v.dialysateFlowRateRes(), quint32(51)); + QCOMPARE(v.durationRes(), quint32(16)); + QCOMPARE(v.heparinDispensingRateRes(), qreal(0.2)); + QCOMPARE(v.heparinBolusVolumeRes(), qreal(0.2)); + QCOMPARE(v.heparinStopTimeRes(), quint32(11)); + QCOMPARE(v.salineBolusVolumeRes(), quint32(101)); + + QCOMPARE(v.acidConcentrateRes(), quint32(2)); + QCOMPARE(v.bicarbonateConcentrateRes(), quint32(2)); + QCOMPARE(v.dialyzerTypeRes(), quint32(2)); + + QCOMPARE(v.dialysateTempRes(), qreal(0.6)); + QCOMPARE(v.arterialPressureLimitLowRes(), qint32(11)); + QCOMPARE(v.arterialPressureLimitHighRes(), qint32(11)); + QCOMPARE(v.venousPressureLimitLowRes(), qint32(11)); + QCOMPARE(v.venousPressureLimitHighRes(), qint32(11)); + QCOMPARE(v.bloodPressureMeasureIntervalRes(), quint32(6)); + QCOMPARE(v.rinsebackFlowRateRes(), quint32(26)); + + View::VTreatmentCreate view; + // adjust quint32 minimums view.bloodFlowRateMin(1); view.dialysateFlowRateMin(1); view.durationMin(1); view.heparinDispensingRateMin(2); view.heparinBolusVolumeMin(1); view.heparinStopTimeMin(1); + view.salineBolusVolumeMin(1); + view.acidConcentrateMin(1); + view.bicarbonateConcentrateMin(1); + view.dialyzerTypeMin(1); view.dialysateTempMin(1); view.arterialPressureLimitLowMin(2); @@ -255,26 +321,26 @@ view.rinsebackFlowRateMin(1); // setters - view.set_bloodFlowRate(0); - view.set_dialysateFlowRate(0); - view.set_duration(0); - view.set_heparinDispensingRate(1); + view.bloodFlowRate(0); + view.dialysateFlowRate(0); + view.duration(0); + view.heparinDispensingRate(1); - view.set_heparinBolusVolume(0); - view.set_heparinStopTime(0); - view.set_salineBolusVolume(-1); - view.set_acidConcentrate(-1); - view.set_bicarbonateConcentrate(-1); + view.heparinBolusVolume(0); + view.heparinStopTime(0); + view.salineBolusVolume(0); + view.acidConcentrate(view.acidConcentrateMin()); + view.bicarbonateConcentrate(view.bicarbonateConcentrateMin()); - view.set_dialyzerType(-1); - view.set_dialysateTemp(0); - view.set_arterialPressureLimitLow(1); - view.set_arterialPressureLimitHigh(1); - view.set_venousPressureLimitLow(1); - view.set_venousPressureLimitHigh(1); + view.dialyzerType(view.dialyzerTypeMin()); + view.dialysateTemp(0); + view.arterialPressureLimitLow(1); + view.arterialPressureLimitHigh(1); + view.venousPressureLimitLow(1); + view.venousPressureLimitHigh(1); - view.set_bloodPressureMeasureInterval(1); - view.set_rinsebackFlowRate(0); + view.bloodPressureMeasureInterval(1); + view.rinsebackFlowRate(0); view.setTreatmentData(); @@ -299,51 +365,54 @@ QCOMPARE(view.validate(view.treatmentData), false); // edge case when pressure lows are set greater than the highs - view.set_arterialPressureLimitLow(view.arterialPressureLimitHighMin()+1); - view.set_venousPressureLimitLow(view.venousPressureLimitHighMin()+1); + view.arterialPressureLimitLow(view.arterialPressureLimitHighMin()+1); + view.venousPressureLimitLow(view.venousPressureLimitHighMin()+1); QCOMPARE(view.validate(view.treatmentData), false); - view.onResetCreateTreatment(); + view.doResetCreateTreatment(); for (int i = 0; i < 17; ++i) { VCreateTreatment_simulate_valid_parameters(view); switch (i) { - case 0: view.set_bloodFlowRate(view.bloodFlowRateMax()+1); break; - case 1: view.set_dialysateFlowRate(view.dialysateFlowRateMax()+1); break; - case 2: view.set_duration(view.durationMax()+1); break; - case 3: view.set_heparinDispensingRate(view.heparinDispensingRateMax()+1); break; + case 0: view.bloodFlowRate(view.bloodFlowRateMax()+1); break; + case 1: view.dialysateFlowRate(view.dialysateFlowRateMax()+1); break; + case 2: view.duration(view.durationMax()+1); break; + case 3: view.heparinDispensingRate(view.heparinDispensingRateMax()+1); break; - case 4: view.set_heparinBolusVolume(view.heparinBolusVolumeMax()+1); break; - case 5: view.set_heparinStopTime(view.heparinStopTimeMax()+1); break; - case 6: view.set_salineBolusVolume(view.salineBolusOptions().length()); break; - case 7: view.set_acidConcentrate(view.acidConcentrateOptions().length()); break; - case 8: view.set_bicarbonateConcentrate(view.bicarbonateConcentrateOptions().length()); break; + case 4: view.heparinBolusVolume(view.heparinBolusVolumeMax()+1); break; + case 5: view.heparinStopTime(view.heparinStopTimeMax()+1); break; + case 6: view.salineBolusVolume(view.salineBolusVolumeMax()+1); break; + case 7: view.acidConcentrate(view.acidConcentrateOptions().length()); break; + case 8: view.bicarbonateConcentrate(view.bicarbonateConcentrateOptions().length()); break; - case 9: view.set_dialyzerType(view.dialyzerTypeOptions().length()); break; - case 10: view.set_dialysateTemp(view.dialysateTempMax()+1); break; - case 11: view.set_arterialPressureLimitLow(view.arterialPressureLimitLowMax()+1); break; - case 12: view.set_arterialPressureLimitHigh(view.arterialPressureLimitHighMax()+1); break; - case 13: view.set_venousPressureLimitLow(view.venousPressureLimitLowMax()+1); break; - case 14: view.set_venousPressureLimitHigh(view.venousPressureLimitHighMax()+1); break; + case 9: view.dialyzerType(view.dialyzerTypeOptions().length()); break; + case 10: view.dialysateTemp(view.dialysateTempMax()+1); break; + case 11: view.arterialPressureLimitLow(view.arterialPressureLimitLowMax()+1); break; + case 12: view.arterialPressureLimitHigh(view.arterialPressureLimitHighMax()+1); break; + case 13: view.venousPressureLimitLow(view.venousPressureLimitLowMax()+1); break; + case 14: view.venousPressureLimitHigh(view.venousPressureLimitHighMax()+1); break; - case 15: view.set_bloodPressureMeasureInterval(view.bloodPressureMeasureIntervalMax()+1); break; - case 16: view.set_rinsebackFlowRate(view.rinsebackFlowRateMax()+1); break; + case 15: view.bloodPressureMeasureInterval(view.bloodPressureMeasureIntervalMax()+1); break; + case 16: view.rinsebackFlowRate(view.rinsebackFlowRateMax()+1); break; default: break; } QCOMPARE(view.validate(view.treatmentData), false); - view.onFinishedCreate(); + view.doFinishedCreate(); } - + view.dialyzerType(-1); + QVERIFY(!(view.dialyzerTypeOptions().length() - 1 < (int)view.dialyzerType())); + QStringList result = view.doGetOperatingParameterValues(); + QCOMPARE(result.at(2), "None"); } void tst_views::VCreateTreatment_check_init() { - View::VCreateTreatment view; + View::VTreatmentCreate view; quint32 val = 150; view.bloodFlowRateMin(val); ++val; view.bloodFlowRateMin(val); view.bloodFlowRateMin(val); @@ -407,21 +476,21 @@ view.durationMax(val); QCOMPARE(val, view.durationMax()); - QStringList options = QStringList() << "100 mL" << "200 mL" << "300 mL"; - view.salineBolusOptions(options); options.append(" "); - view.salineBolusOptions(options); - view.salineBolusOptions(options); - QCOMPARE(options, view.salineBolusOptions()); + val = 300; view.salineBolusVolumeMax(val); ++val; + view.salineBolusVolumeMax(val); + view.salineBolusVolumeMax(val); + QCOMPARE(val, view.salineBolusVolumeMax()); - - options = QStringList() << "08-1251-1" << "08-2251-0" << "08-3251-9"; + QStringList options = QStringList() << "08-1251-1" << "08-2251-0" << "08-3251-9"; view.acidConcentrateOptions(options); options.append(" "); + view.acidConcentrateMax(view.acidConcentrateMax()+1); view.acidConcentrateOptions(options); view.acidConcentrateOptions(options); QCOMPARE(options, view.acidConcentrateOptions()); options = QStringList() << "Dimesol - BC-201"; view.bicarbonateConcentrateOptions(options); options.append(" "); + view.bicarbonateConcentrateMax(view.bicarbonateConcentrateMax()+1); view.bicarbonateConcentrateOptions(options); view.bicarbonateConcentrateOptions(options); QCOMPARE(options, view.bicarbonateConcentrateOptions()); @@ -432,6 +501,7 @@ << "Fresenius Optiflux F160NRe" << "Fresenius Optiflux F180NRe"; view.dialyzerTypeOptions(options); options.append(" "); + view.dialyzerTypeMax(view.dialyzerTypeMax()+1); view.dialyzerTypeOptions(options); view.dialyzerTypeOptions(options); QCOMPARE(options, view.dialyzerTypeOptions()); @@ -520,7 +590,7 @@ void tst_views::VCreateTreatment_save_csv() { - View::VCreateTreatment view; + View::VTreatmentCreate view; QString csvData = view.getParameterRangesDataCSV(); QString filename = QString("/tmp/out_%0.csv").arg(QDateTime::currentDateTime().toString(datetimeFormat)); @@ -541,7 +611,7 @@ */ void tst_views::VCreateTreatment_save() { - View::VCreateTreatment view; + View::VTreatmentCreate view; QJsonObject objectWritten { {"bloodFlowRate", QString::number(view.treatmentData.bloodFlowRate)}, @@ -599,7 +669,7 @@ */ void tst_views::VCreateTreatment_enums() { - View::VCreateTreatment view; + View::VTreatmentCreate view; GuiRequestReasons reason = GuiRequestReasons::REQUEST_REJECT_REASON_NONE; QCOMPARE(view.enumToString(reason), "REQUEST_REJECT_REASON_NONE"); @@ -615,7 +685,7 @@ */ void tst_views::VCreateTreatment_json() { - View::VCreateTreatment view; + View::VTreatmentCreate view; QJsonArray arr; QStringList list; @@ -647,56 +717,60 @@ */ void tst_views::VCreateTreatment_fw_validation_response() { - View::VCreateTreatment view; + View::VTreatmentCreate view; GuiActionType action = GuiActionType::ID_CreateTreatmentRsp; for (int i = 0; i < 18; ++i) { // 0 = OK, 1,2,3 ... parameter is not OK QVariantList messageData; - if (i == 0) messageData.append(1); else messageData.append(0); - if (i == 1) messageData.append(1); else messageData.append(0); - if (i == 2) messageData.append(1); else messageData.append(0); - if (i == 3) messageData.append(1); else messageData.append(0); - if (i == 4) messageData.append(1); else messageData.append(0); - if (i == 5) messageData.append(1); else messageData.append(0); - if (i == 6) messageData.append(1); else messageData.append(0); - if (i == 7) messageData.append(1); else messageData.append(0); - if (i == 8) messageData.append(1); else messageData.append(0); - if (i == 9) messageData.append(1); else messageData.append(0); - if (i == 10) messageData.append(1); else messageData.append(0); - if (i == 11) messageData.append(1); else messageData.append(0); - if (i == 12) messageData.append(1); else messageData.append(0); - if (i == 13) messageData.append(1); else messageData.append(0); - if (i == 14) messageData.append(1); else messageData.append(0); - if (i == 15) messageData.append(1); else messageData.append(0); - if (i == 16) messageData.append(1); else messageData.append(0); - if (i == 17) messageData.append(1); else messageData.append(0); - QVERIFY(!view.onFWValidationResponse(action, messageData)); + AdjustTreatmentParametersResponseData respData; + if (i == 0) respData.requestValid = 1; else respData.requestValid = 0; + if (i == 1) respData.bloodFlowRate = 1; else respData.bloodFlowRate = 0; + if (i == 2) respData.dialysateFlowRate = 1; else respData.dialysateFlowRate = 0; + if (i == 3) respData.duration = 1; else respData.duration = 0; + if (i == 4) respData.heparinStopTime = 1; else respData.heparinStopTime = 0; + if (i == 5) respData.salineBolus = 1; else respData.salineBolus = 0; + if (i == 6) respData.acidConcentrate = 1; else respData.acidConcentrate = 0; + if (i == 7) respData.bicarbonateConcentrate = 1; else respData.bicarbonateConcentrate = 0; + if (i == 8) respData.dialyzerType = 1; else respData.dialyzerType = 0; + if (i == 9) respData.bloodPressureMeasureInterval = 1; else respData.bloodPressureMeasureInterval= 0; + if (i == 10) respData.rinsebackFlowRate = 1; else respData.rinsebackFlowRate = 0; + if (i == 11) respData.arterialPressureLimitLow = 1; else respData.arterialPressureLimitLow = 0; + if (i == 12) respData.arterialPressureLimitHigh = 1; else respData.arterialPressureLimitHigh = 0; + if (i == 13) respData.venousPressureLimitLow = 1; else respData.venousPressureLimitLow = 0; + if (i == 14) respData.venousPressureLimitHigh = 1; else respData.venousPressureLimitHigh = 0; + if (i == 15) respData.heparinDispensingRate = 1; else respData.heparinDispensingRate = 0; + if (i == 16) respData.heparinBolusVolume = 1; else respData.heparinBolusVolume = 0; + if (i == 17) respData.dialysateTemp = 1; else respData.dialysateTemp = 0; + QVERIFY(!view.doActionReceive(respData)); } AdjustTreatmentParametersRequestData dataBackup = view.treatmentData; - QVariantList validMessageData; - for (int i = 0; i < 18; ++i) { validMessageData.append(0); } + AdjustTreatmentParametersResponseData respData; - QVERIFY(!view.onFWValidationResponse(GuiActionType::ID_CreateTreatmentReq, validMessageData)); + StartTreatmentResponseData startResponse; - QVERIFY(view.onFWValidationResponse(GuiActionType::ID_CreateTreatmentRsp, validMessageData)); + startResponse.startTreatmentResponse = 0; // REJECT + view.doActionReceive(startResponse); + QCOMPARE(view.pageToShow, View::VTreatmentCreate::Page::None); + QVERIFY(view.doActionReceive(respData)); + view.saveTreatmentProfile(false); QVERIFY(!view._saveTreatmentProfile); - view.onFinishedConfirm(); + view.doFinishedConfirm(); view.saveTreatmentProfile(true); QVERIFY(view._saveTreatmentProfile); - view.onFinishedConfirm(); + view.doFinishedConfirm(); view.onFinishedSaveNewTreatment(true); view.onFinishedSaveNewTreatment(false); - view.onFinishedPrime(); - view.onStart(); + view.doFinishedPrime(); + view.doStartTreatment(); QCOMPARE(view.treatmentData.bloodFlowRate, dataBackup.bloodFlowRate); QCOMPARE(view.treatmentData.dialysateFlowRate, dataBackup.dialysateFlowRate); @@ -715,7 +789,6 @@ QCOMPARE(view.treatmentData.venousPressureLimitHigh, dataBackup.venousPressureLimitHigh); QCOMPARE(view.treatmentData.bloodPressureMeasureInterval, dataBackup.bloodPressureMeasureInterval); QCOMPARE(view.treatmentData.rinsebackFlowRate, dataBackup.rinsebackFlowRate); - } /*! @@ -724,7 +797,7 @@ */ void tst_views::VCreateTreatment_load_parameter_ranges() { - View::VCreateTreatment view; + View::VTreatmentCreate view; QJsonObject obj; @@ -738,15 +811,65 @@ _FileSaver.onConcurrentSave(path, document.toJson(), false); - QThread::msleep(500); + int elapsedSeconds = 0; + QDateTime startTime = QDateTime::currentDateTime(); + while (view.loadTreatmentParameterRanges(path) != obj) + elapsedSeconds += startTime.secsTo(QDateTime::currentDateTime()); QJsonObject readObj = view.loadTreatmentParameterRanges(path); QCOMPARE(obj, readObj); + QVERIFY(elapsedSeconds < 2); readObj = view.loadTreatmentParameterRanges(QString("/tmp/wrong_path_%0.json") .arg(QDateTime::currentDateTime().toString(datetimeFormat))); QVERIFY(obj != readObj); } +void tst_views::VTreatmentBegin_continue() +{ + View::VTreatmentBegin view; + view.continueEnabled(false); + QCOMPARE(view.continueEnabled(), false); + view.doUserModifiedParameters(); + QCOMPARE(view.continueEnabled(), true); +} + +void tst_views::VTreatmentPriming_properties() +{ + View::VPriming view; + PrimingData primingData; + primingData.currentState = View::VPriming::PRIMING_COMPLETE+1; + + view.checkingInstallationComplete(true); + QCOMPARE(view.checkingInstallationComplete(), true); + view.creatingDialysateComplete(true); + QCOMPARE(view.creatingDialysateComplete(), true); + view.primingLinesComplete(true); + QCOMPARE(view.primingLinesComplete(), true); + view.primingLinesComplete(false); + QCOMPARE(view.primingLinesComplete(), false); + view.primingComplete(true); + QCOMPARE(view.primingComplete(), true); + view.primingComplete(false); + QCOMPARE(view.primingComplete(), false); + view.primingComplete(false); + QCOMPARE(view.primingComplete(), false); + view.continueEnabled(true); + QCOMPARE(view.continueEnabled(), true); + view.onActionReceive(primingData); + QCOMPARE(view.currentState(), (quint32)View::VPriming::PRIMING_COMPLETE+1); + view.primingLinesComplete(false); + QVERIFY(!view.primingLinesComplete()); + view.secondsRemaining(quint32(10)); + QCOMPARE(view.secondsRemaining(), quint32(10)); + view.secondsRemaining(quint32(1)); + QCOMPARE(view.secondsRemaining(), quint32(1)); + view.secondsRemaining(quint32(1)); + QCOMPARE(view.secondsRemaining(), quint32(1)); + view.secondsTotal(quint32(50)); + QCOMPARE(view.secondsTotal(), quint32(50)); + view.continueEnabled(false); + QCOMPARE(view.continueEnabled(), false); +}