[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [ruqola] /: Add autotest for serializing code. Found 2 bugs
From: Montel Laurent <null () kde ! org>
Date: 2017-08-09 5:17:53
Message-ID: E1dfJNR-00089i-5g () code ! kde ! org
[Download RAW message or body]
Git commit ff5b637dd3212e15c35e7f7a5cf48276e1088529 by Montel Laurent.
Committed on 09/08/2017 at 05:17.
Pushed by mlaurent into branch 'master'.
Add autotest for serializing code. Found 2 bugs
M +24 -0 autotests/roommodeltest.cpp
M +2 -0 autotests/roommodeltest.h
M +29 -1 src/room.cpp
M +5 -1 src/room.h
M +3 -1 src/roommodel.cpp
https://commits.kde.org/ruqola/ff5b637dd3212e15c35e7f7a5cf48276e1088529
diff --git a/autotests/roommodeltest.cpp b/autotests/roommodeltest.cpp
index be068bb..12adcaa 100644
--- a/autotests/roommodeltest.cpp
+++ b/autotests/roommodeltest.cpp
@@ -20,6 +20,10 @@
#include "roommodeltest.h"
+#include "roommodel.h"
+#include "room.h"
+#include <QJsonDocument>
+#include <QJsonObject>
#include <QTest>
QTEST_MAIN(RoomModelTest)
@@ -29,3 +33,23 @@ RoomModelTest::RoomModelTest(QObject *parent)
{
}
+
+void RoomModelTest::shouldSerialized()
+{
+ Room input;
+ input.id = QStringLiteral("foo");
+ input.type = QStringLiteral("p");
+ input.name = QStringLiteral("d");
+ input.mAnnouncement = QStringLiteral("AA");
+ input.userName = QStringLiteral("pp");
+ input.userID = QStringLiteral("sdfsdfs");
+ input.topic = QStringLiteral("topic");
+ input.mutedUsers = QStringLiteral("mutedUsers");
+ input.jitsiTimeout = 55;
+ input.ro = true;
+ input.unread = 66;
+ input.selected = true;
+ const QByteArray ba = RoomModel::serialize(input);
+ Room output = RoomModel::fromJSon(QJsonObject(QJsonDocument::fromBinaryData(ba).object()));
+ QVERIFY(input.isEqual(output));
+}
diff --git a/autotests/roommodeltest.h b/autotests/roommodeltest.h
index bed679b..fb410c5 100644
--- a/autotests/roommodeltest.h
+++ b/autotests/roommodeltest.h
@@ -30,6 +30,8 @@ class RoomModelTest : public QObject
public:
explicit RoomModelTest(QObject *parent = nullptr);
~RoomModelTest() = default;
+private Q_SLOTS:
+ void shouldSerialized();
};
#endif // ROOMMODELTEST_H
diff --git a/src/room.cpp b/src/room.cpp
index bfe68dd..927a8a6 100644
--- a/src/room.cpp
+++ b/src/room.cpp
@@ -21,8 +21,36 @@
*/
#include "room.h"
-
+#include <QDebug>
Room::Room()
{
}
+
+bool Room::isEqual(const Room &other) const
+{
+ qDebug() << " id " << id << " other " << other.id;
+ qDebug() << " type " << type << " type " << other.type;
+ qDebug() << " name " << name << " name " << other.name;
+ qDebug() << " mAnnouncement " << mAnnouncement << " mAnnouncement " << other.mAnnouncement;
+ qDebug() << " userName " << userName << " userName " << other.userName;
+ qDebug() << " userID " << userID << " userID " << other.userID;
+ qDebug() << " topic " << topic << " topic " << other.topic;
+ qDebug() << " mutedUsers " << mutedUsers << " mutedUsers " << other.mutedUsers;
+ qDebug() << " jitsiTimeout " << jitsiTimeout << " jitsiTimeout " << other.jitsiTimeout;
+ qDebug() << " ro " << ro << " ro " << other.ro;
+ qDebug() << " unread " << unread << " unread " << other.unread;
+ qDebug() << " selected " << selected << " selected " << other.selected;
+ return (id == other.id) &&
+ (type == other.type) &&
+ (name == other.name) &&
+ (mAnnouncement == other.mAnnouncement) &&
+ (userName == other.userName) &&
+ (userID == other.userID) &&
+ (topic == other.topic) &&
+ (mutedUsers == other.mutedUsers) &&
+ (jitsiTimeout == other.jitsiTimeout) &&
+ (ro == other.ro) &&
+ (unread == other.unread) &&
+ (selected == other.selected);
+}
diff --git a/src/room.h b/src/room.h
index c6bc842..14c1a96 100644
--- a/src/room.h
+++ b/src/room.h
@@ -25,8 +25,9 @@
#define ROOM_H
#include <QString>
+#include "libruqola_private_export.h"
-class Room
+class LIBRUQOLACORE_TESTS_EXPORT Room
{
public:
Room();
@@ -43,6 +44,9 @@ public:
return name < other.name;
}
+ //we can't use operator== as it tests only id. We need it for autotest
+ bool isEqual(const Room &other) const;
+
/**
* @brief Return room name
*
diff --git a/src/roommodel.cpp b/src/roommodel.cpp
index 205a3ba..1850740 100644
--- a/src/roommodel.cpp
+++ b/src/roommodel.cpp
@@ -222,7 +222,8 @@ Room RoomModel::fromJSon(const QJsonObject &o)
r.jitsiTimeout = o[QStringLiteral("jitsiTimeout")].toDouble();
r.ro = o[QStringLiteral("ro")].toBool();
r.unread = o[QStringLiteral("unread")].toInt(0);
- r.mAnnouncement = o[QStringLiteral("announcement")].toInt(0);
+ r.mAnnouncement = o[QStringLiteral("announcement")].toString();
+ r.selected = o[QStringLiteral("selected")].toBool();
return r;
}
@@ -243,6 +244,7 @@ QByteArray RoomModel::serialize(const Room &r)
o[QStringLiteral("ro")] = r.ro;
o[QStringLiteral("unread")] = r.unread;
o[QStringLiteral("announcement")] = r.mAnnouncement;
+ o[QStringLiteral("selected")] = r.selected;
d.setObject(o);
return d.toBinaryData();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic