Unit tests for IrCtrl
authorJari Jarvi <t7jaja00@students.oamk.fi>
Tue, 8 Jun 2010 08:04:58 +0000 (11:04 +0300)
committerJari Jarvi <t7jaja00@students.oamk.fi>
Tue, 8 Jun 2010 08:04:58 +0000 (11:04 +0300)
ut/stubs/qabstractsocket_stub.cpp [new file with mode: 0644]
ut/stubs/qsettings_stub.cpp [new file with mode: 0644]
ut/ut.pri [new file with mode: 0644]
ut/ut_irctrl/ut_irctrl.cpp [new file with mode: 0644]
ut/ut_irctrl/ut_irctrl.h [new file with mode: 0644]
ut/ut_irctrl/ut_irctrl.pro [new file with mode: 0644]

diff --git a/ut/stubs/qabstractsocket_stub.cpp b/ut/stubs/qabstractsocket_stub.cpp
new file mode 100644 (file)
index 0000000..2d3665b
--- /dev/null
@@ -0,0 +1,26 @@
+#include <QAbstractSocket>
+
+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 (file)
index 0000000..5f92dfb
--- /dev/null
@@ -0,0 +1,25 @@
+#include <QObject>
+#include <QVariant>
+#include <QString>
+#include <QSettings>
+
+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 (file)
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 (file)
index 0000000..c39acff
--- /dev/null
@@ -0,0 +1,93 @@
+#include "ut_irctrl.h"
+#include "irctrl.h"
+#include <QtTest>
+#include <QStringList>
+
+
+// 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 (file)
index 0000000..eca0484
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef UT_IRCTRL_H
+#define UT_IRCTRL_H
+
+#include <QObject>
+
+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 (file)
index 0000000..6b59d06
--- /dev/null
@@ -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
+