#include #include "TestDataSender.h" #include "model/Console.h" #include "TestLogger.h" #include class ConsoleTest : public QObject { Q_OBJECT private: Console c; TestDataSender t; TestLogger log; public: ConsoleTest(); ~ConsoleTest(); //uncrustify off private slots: //uncrustify on void pressDual_test_case(); void releaseDual_test_case(); void dualLedChange_test_case(); void pressQuad_test_case(); void releaseQuad_test_case(); void rotateJs1_test_case(); void rotatFocus_test_case(); void echo_test_case(); void wrongProtocol_test_case(); void wrongMessageDirection_test_case(); void ledWrongColor_test_case(); }; /*************************************************************************************************/ ConsoleTest::ConsoleTest() { c.injectDataSender(&t); c.injectLogger(&log); } /*************************************************************************************************/ ConsoleTest::~ConsoleTest() { } /*************************************************************************************************/ void ConsoleTest::pressDual_test_case() { c.pressDual(); QByteArray arr; arr.resize(8); arr[0] = 0x00; arr[1] = 0x01; arr[2] = 0x04; arr[3] = 0x1D; arr[4] = 0x01; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; QCOMPARE(t.consoleData, arr); } /*************************************************************************************************/ void ConsoleTest::releaseDual_test_case() { c.releaseDual(); QByteArray arr; arr.resize(8); arr[0] = 0x00; arr[1] = 0x01; arr[2] = 0x04; arr[3] = 0x1D; arr[4] = 0x00; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; QCOMPARE(t.consoleData, arr); } /*************************************************************************************************/ void ConsoleTest::dualLedChange_test_case() { QSignalSpy spy(&c, SIGNAL(dualLedChanged(char))); char ledValue = 0x01; QByteArray arr; arr.resize(8); arr[0] = 0x01; arr[1] = 0x01; arr[2] = 0x03; arr[3] = static_cast(0x82); arr[4] = ledValue; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; c.newData(arr); auto result = spy.takeFirst()[0].value(); QCOMPARE(result[0], ledValue); } /*************************************************************************************************/ void ConsoleTest::pressQuad_test_case() { c.pressQuad(); QByteArray arr; arr.resize(8); arr[0] = 0x00; arr[1] = 0x01; arr[2] = 0x04; arr[3] = 0x1C; arr[4] = 0x01; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; QCOMPARE(t.consoleData, arr); } /*************************************************************************************************/ void ConsoleTest::releaseQuad_test_case() { c.releaseQuad(); QByteArray arr; arr.resize(8); arr[0] = 0x00; arr[1] = 0x01; arr[2] = 0x04; arr[3] = 0x1C; arr[4] = 0x00; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; QCOMPARE(t.consoleData, arr); } /*************************************************************************************************/ void ConsoleTest::rotateJs1_test_case() { auto value = 0; c.rotateJs1(value); QByteArray arr; arr.resize(8); arr[0] = 0x00; arr[1] = 0x02; arr[2] = 0x05; arr[3] = 0x56; arr[4] = static_cast(value >> 8); arr[5] = static_cast(value); arr[6] = 0x00; arr[7] = 0x00; QCOMPARE(t.consoleData, arr); } /*************************************************************************************************/ void ConsoleTest::rotatFocus_test_case() { auto value = 40000; c.rotateFocus(value); QByteArray arr; arr.resize(8); arr[0] = 0x00; arr[1] = 0x02; arr[2] = 0x05; arr[3] = 0x51; arr[4] = static_cast(value >> 8); arr[5] = static_cast(value); arr[6] = 0x00; arr[7] = 0x00; QCOMPARE(t.consoleData, arr); } /*************************************************************************************************/ void ConsoleTest::echo_test_case() { QByteArray arr; arr.resize(8); arr[0] = 0x01; arr[1] = 0x02; arr[2] = 0x06; arr[3] = static_cast(0xA4); arr[4] = 0x00; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; c.newData(arr); QCOMPARE(t.consoleData, arr); } /*************************************************************************************************/ void ConsoleTest::wrongProtocol_test_case() { char ledValue = 0x01; QByteArray arr; arr.resize(5); arr[0] = 0x01; arr[1] = 0x01; arr[2] = 0x03; arr[3] = static_cast(0x82); arr[4] = ledValue; QSignalSpy spy(&log, SIGNAL(isCalled())); c.newData(arr); QCOMPARE(spy.count(), 1); } /*************************************************************************************************/ void ConsoleTest::wrongMessageDirection_test_case() { char ledValue = 0x01; QByteArray arr; arr.resize(8); arr[0] = 0x00; arr[1] = 0x01; arr[2] = 0x03; arr[3] = static_cast(0x82); arr[4] = ledValue; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; QSignalSpy spy(&log, SIGNAL(isCalled())); c.newData(arr); QCOMPARE(spy.count(), 1); } /*************************************************************************************************/ void ConsoleTest::ledWrongColor_test_case() { QByteArray arr; char ledValue = 0x05; arr.resize(8); arr[0] = 0x01; arr[1] = 0x01; arr[2] = 0x04; arr[3] = static_cast(0x82); arr[4] = ledValue; arr[5] = 0x00; arr[6] = 0x00; arr[7] = 0x00; QSignalSpy spy(&log, SIGNAL(isCalled())); c.newData(arr); QCOMPARE(spy.count(), 1); } /*************************************************************************************************/ QTEST_APPLESS_MAIN(ConsoleTest) #include "tst_console.moc"