From 0eaa494cc0455ec135e4d536a8ca96b6af1688f9 Mon Sep 17 00:00:00 2001 From: Jari Jarvi Date: Tue, 8 Jun 2010 11:04:58 +0300 Subject: [PATCH] Unit tests for IrCtrl --- ut/stubs/qabstractsocket_stub.cpp | 26 +++++++++++ ut/stubs/qsettings_stub.cpp | 25 ++++++++++ ut/ut.pri | 30 ++++++++++++ ut/ut_irctrl/ut_irctrl.cpp | 93 +++++++++++++++++++++++++++++++++++++ ut/ut_irctrl/ut_irctrl.h | 26 +++++++++++ ut/ut_irctrl/ut_irctrl.pro | 17 +++++++ 6 files changed, 217 insertions(+) create mode 100644 ut/stubs/qabstractsocket_stub.cpp create mode 100644 ut/stubs/qsettings_stub.cpp create mode 100644 ut/ut.pri create mode 100644 ut/ut_irctrl/ut_irctrl.cpp create mode 100644 ut/ut_irctrl/ut_irctrl.h create mode 100644 ut/ut_irctrl/ut_irctrl.pro diff --git a/ut/stubs/qabstractsocket_stub.cpp b/ut/stubs/qabstractsocket_stub.cpp new file mode 100644 index 0000000..2d3665b --- /dev/null +++ b/ut/stubs/qabstractsocket_stub.cpp @@ -0,0 +1,26 @@ +#include + +void QAbstractSocket::setSocketOption(QAbstractSocket::SocketOption, + const QVariant &) +{ +} + +void QAbstractSocket::connectToHost(const QHostAddress &, + quint16, OpenMode) +{ +} + +bool QAbstractSocket::waitForConnected(int) +{ + return true; +} + +bool QAbstractSocket::waitForBytesWritten(int) +{ + return true; +} + +void QAbstractSocket::close() +{ +} + diff --git a/ut/stubs/qsettings_stub.cpp b/ut/stubs/qsettings_stub.cpp new file mode 100644 index 0000000..5f92dfb --- /dev/null +++ b/ut/stubs/qsettings_stub.cpp @@ -0,0 +1,25 @@ +#include +#include +#include +#include + +QSettings::QSettings(QObject *) +{ +} + +QSettings::~QSettings() +{ +} + +QVariant QSettings::value(const QString &, const QVariant &defaultValue) const +{ + if (!defaultValue.isValid()) + return "n/a"; + + return defaultValue; +} + +void QSettings::setValue(const QString &, const QVariant &) +{ +} + diff --git a/ut/ut.pri b/ut/ut.pri new file mode 100644 index 0000000..3b39365 --- /dev/null +++ b/ut/ut.pri @@ -0,0 +1,30 @@ +TEMPLATE = app +TARGET = ut_irctrl + +WARNINGS += -Wall + +# CONFIG += debug +# QMAKE_CXXFLAGS_DEBUG += -fprofile-arcs +# QMAKE_CXXFLAGS_DEBUG += -ftest-coverage +# QMAKE_LFLAGS_DEBUG += -fprofile-arcs +# QMAKE_LFLAGS_DEBUG += -ftest-coverage + +QT += testlib + +SRCDIR = ../../src +STUBDIR = ../stubs + +DEPENDPATH += + +INCLUDEPATH += $$SRCDIR + +VPATH = $$SRCDIR +VPATH += $$STUBDIR + +UI_DIR = uics +MOC_DIR = mocs +OBJECTS_DIR = objs + +# LIBS += -lgcov + + diff --git a/ut/ut_irctrl/ut_irctrl.cpp b/ut/ut_irctrl/ut_irctrl.cpp new file mode 100644 index 0000000..c39acff --- /dev/null +++ b/ut/ut_irctrl/ut_irctrl.cpp @@ -0,0 +1,93 @@ +#include "ut_irctrl.h" +#include "irctrl.h" +#include +#include + + +// TODO: better ideas? +QStringList socketOut; + + +qint64 QIODevice::write(const char *data, qint64 len) +{ + socketOut.append(data); + return len; +} + +__BEGIN_NAMESPACE_STD +int system (__const char * /*__command*/) +{ + return 0; +} +__END_NAMESPACE_STD + + +void Ut_IrCtrl::initTestCase() +{ +} + +void Ut_IrCtrl::cleanupTestCase() +{ +} + +void Ut_IrCtrl::init() +{ + socketOut.clear(); +} + +void Ut_IrCtrl::testSendCmd0() +{ + IrCtrl subject; + QCOMPARE(socketOut.size(), 0); + subject.sendCmd0(); + QCOMPARE(socketOut.size(), 1); + QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING VOL+\n")); +} + +void Ut_IrCtrl::testSendCmd1() +{ + IrCtrl subject; + QCOMPARE(socketOut.size(), 0); + subject.sendCmd1(); + QCOMPARE(socketOut.size(), 1); + QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING VOL-\n")); +} + +void Ut_IrCtrl::testSendCmd2() +{ + IrCtrl subject; + QCOMPARE(socketOut.size(), 0); + subject.sendCmd2(); + QCOMPARE(socketOut.size(), 1); + QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING P+\n")); +} + +void Ut_IrCtrl::testSendCmd3() +{ + IrCtrl subject; + QCOMPARE(socketOut.size(), 0); + subject.sendCmd3(); + QCOMPARE(socketOut.size(), 1); + QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING P-\n")); +} + +void Ut_IrCtrl::testSendCmd4() +{ + IrCtrl subject; + QCOMPARE(socketOut.size(), 0); + subject.sendCmd4(); + QCOMPARE(socketOut.size(), 1); + QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING POWER\n")); +} + +void Ut_IrCtrl::testSendCmd5() +{ + IrCtrl subject; + QCOMPARE(socketOut.size(), 0); + subject.sendCmd5(); + QCOMPARE(socketOut.size(), 1); + QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING MUTE\n")); +} + +QTEST_MAIN(Ut_IrCtrl) + diff --git a/ut/ut_irctrl/ut_irctrl.h b/ut/ut_irctrl/ut_irctrl.h new file mode 100644 index 0000000..eca0484 --- /dev/null +++ b/ut/ut_irctrl/ut_irctrl.h @@ -0,0 +1,26 @@ +#ifndef UT_IRCTRL_H +#define UT_IRCTRL_H + +#include + +class IrCtrl; + +class Ut_IrCtrl : public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void cleanupTestCase(); + void init(); // Before each test case + + void testSendCmd0(); + void testSendCmd1(); + void testSendCmd2(); + void testSendCmd3(); + void testSendCmd4(); + void testSendCmd5(); +}; + +#endif // UT_IRCTRL_H + diff --git a/ut/ut_irctrl/ut_irctrl.pro b/ut/ut_irctrl/ut_irctrl.pro new file mode 100644 index 0000000..6b59d06 --- /dev/null +++ b/ut/ut_irctrl/ut_irctrl.pro @@ -0,0 +1,17 @@ +!include( ../ut.pri ) { + error( Could not find the ut.pri file ) +} + +QT += network +QT += testlib + +HEADERS += ut_irctrl.h +HEADERS += irctrl.h +HEADERS += irctrl_p.h + +SOURCES += qabstractsocket_stub.cpp +SOURCES += qsettings_stub.cpp +SOURCES += ut_irctrl.cpp +SOURCES += irctrl.cpp +SOURCES += irctrl_p.cpp + -- 1.7.9.5