aboutsummaryrefslogtreecommitdiff
path: root/test/test_aopacket.cpp
diff options
context:
space:
mode:
authorSalanto <62221668+Salanto@users.noreply.github.com>2024-05-18 03:33:43 +0200
committerGitHub <noreply@github.com>2024-05-18 03:33:43 +0200
commit51338e30e046f1a62c84049b34577f0f3b5db6e3 (patch)
tree283c95f8f776ed852d03a816388695afd65c0f73 /test/test_aopacket.cpp
parent469e293a1885e49f1d5994d41ac7cfc9f4666952 (diff)
parentf9c7205210fb9f768f583065971ece09e6b5eb03 (diff)
Merge pull request #957 from AttorneyOnline/kaleidoscope
The Kaleidoscope - Hell, it's about time.
Diffstat (limited to 'test/test_aopacket.cpp')
-rw-r--r--test/test_aopacket.cpp93
1 files changed, 59 insertions, 34 deletions
diff --git a/test/test_aopacket.cpp b/test/test_aopacket.cpp
index 0b318213..4a24dcd3 100644
--- a/test/test_aopacket.cpp
+++ b/test/test_aopacket.cpp
@@ -1,45 +1,70 @@
-#define CATCH_CONFIG_MAIN
-#include <catch2/catch.hpp>
-
#include "aopacket.h"
-TEST_CASE("AOPacket construct", "[aopacket]") {
- // Parameters
- QString packet_string = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/123/edit##%";
+#include <QString>
+#include <QtTest/QTest>
- SECTION("Packet string") {
- AOPacket p(packet_string);
- REQUIRE(p.to_string() == packet_string);
- }
- SECTION("Header and contents") {
- QStringList contents = {"MY_OOC_NAME", "/doc https://docs.google.com/document/d/123/edit#"};
- AOPacket p("CT", contents);
- REQUIRE(p.to_string() == packet_string);
- }
-}
+class test_AOPacket : public QObject
+{
+ Q_OBJECT
+
+private:
+ const QMap<QString, QString> SYMBOL_MAP{
+ {"#", "<num>"},
+ {"%", "<percent>"},
+ {"$", "<dollar>"},
+ {"&", "<and>"},
+ };
+
+private Q_SLOTS:
+ void constructPacket_data()
+ {
+ QTest::addColumn<QString>("header");
+ QTest::addColumn<QStringList>("content");
+ QTest::addColumn<QString>("result");
-TEST_CASE("AOPacket encode/decode", "[aopacket]") {
- // Parameters
- QString packet_string = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/%$&/edit##%";
- QString good_encode = "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/<percent><dollar><and>/edit<num>#%";
+ QTest::newRow("Basic Packet") << "CT" << QStringList{"MY_OOC_NAME", "/doc https://docs.google.com/document/d/123/edit"} << "CT#MY_OOC_NAME#/doc https://docs.google.com/document/d/123/edit#%";
+ }
- SECTION("Bad encode/decode because packet string constructor splits the '#' after 'edit'") {
- AOPacket p(packet_string);
- p.net_encode();
- REQUIRE(p.to_string() != good_encode);
+ void constructPacket()
+ {
+ QFETCH(QString, header);
+ QFETCH(QStringList, content);
+ QFETCH(QString, result);
- p.net_decode();
- REQUIRE(p.to_string() == packet_string);
+ AOPacket packet(header, content);
+ QVERIFY(packet.toString(true) == result);
}
- SECTION("Good encode/decode with header and contents constructor") {
- QStringList contents = {"MY_OOC_NAME", "/doc https://docs.google.com/document/d/%$&/edit#"};
- AOPacket p("CT", contents);
+ void encodeDecodeData_data()
+ {
+ QTest::addColumn<QString>("what");
+ QTest::addColumn<QString>("result");
+ QTest::addColumn<bool>("encode");
+
+ for (auto it = SYMBOL_MAP.begin(); it != SYMBOL_MAP.end(); ++it)
+ {
+ QTest::newRow(QString("Encode %1").arg(it.key()).toUtf8()) << it.key() << it.value() << true;
+ QTest::newRow(QString("Decode %1").arg(it.value()).toUtf8()) << it.value() << it.key() << false;
+ }
+ }
- p.net_encode();
- REQUIRE(p.to_string() == good_encode);
+ void encodeDecodeData()
+ {
+ QFETCH(QString, what);
+ QFETCH(QString, result);
+ QFETCH(bool, encode);
- p.net_decode();
- REQUIRE(p.to_string() == packet_string);
+ if (encode)
+ {
+ QVERIFY(AOPacket::encode(what) == result);
+ }
+ else
+ {
+ QVERIFY(AOPacket::decode(what) == result);
+ }
}
-}
+};
+
+#include "test/test_aopacket.moc"
+
+QTEST_MAIN(test_AOPacket)