File indexing completed on 2024-12-01 04:35:22

0001 /*
0002    SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "blocktest.h"
0008 #include "messages/block.h"
0009 #include "ruqola_autotest_helper.h"
0010 #include <QJsonObject>
0011 
0012 QTEST_GUILESS_MAIN(BlockTest)
0013 BlockTest::BlockTest(QObject *parent)
0014     : QObject{parent}
0015 {
0016 }
0017 
0018 void BlockTest::shouldHaveDefaultValues()
0019 {
0020     Block b;
0021     QVERIFY(b.callId().isEmpty());
0022     QVERIFY(b.blockId().isEmpty());
0023     QVERIFY(b.appId().isEmpty());
0024     QVERIFY(b.blockTypeStr().isEmpty());
0025     QCOMPARE(b.blockType(), Block::Unknown);
0026 
0027     QVERIFY(!b.videoConferenceInfo().isValid());
0028     QVERIFY(!b.isValid());
0029 }
0030 
0031 void BlockTest::shouldLoadBlock_data()
0032 {
0033     QTest::addColumn<QString>("name");
0034     QTest::addColumn<Block>("blockInfo");
0035     Block info;
0036     info.setBlockId(QStringLiteral("63936e304ef3f3baa9658bd7"));
0037     info.setAppId(QStringLiteral("videoconf-core"));
0038     info.setCallId(QStringLiteral("63936e304ef"));
0039     info.setBlockTypeStr(QStringLiteral("video_conf"));
0040     QTest::addRow("blocks1") << QStringLiteral("blocks1") << info;
0041 }
0042 
0043 void BlockTest::shouldLoadBlock()
0044 {
0045     QFETCH(QString, name);
0046     QFETCH(Block, blockInfo);
0047     const QString originalJsonFile = QLatin1String(RUQOLA_DATA_DIR) + QLatin1String("/blocks/") + name + QLatin1String(".json");
0048     const QJsonObject obj = AutoTestHelper::loadJsonObject(originalJsonFile);
0049 
0050     Block r;
0051     r.parseBlock(obj);
0052     const bool equalOwner = (r == blockInfo);
0053     if (!equalOwner) {
0054         qDebug() << "ACTUAL " << r;
0055         qDebug() << "EXPECTED " << blockInfo;
0056     }
0057     QVERIFY(equalOwner);
0058 }
0059 
0060 void BlockTest::shouldSerializeData()
0061 {
0062     Block input;
0063     input.setBlockId(QStringLiteral("63936e304ef3f3baa9658bd7"));
0064     input.setAppId(QStringLiteral("videoconf-core"));
0065     input.setCallId(QStringLiteral("63936e304ef"));
0066     input.setBlockTypeStr(QStringLiteral("video_conf"));
0067 
0068     const QJsonObject ba = Block::serialize(input);
0069     const Block output = Block::deserialize(ba);
0070     QCOMPARE(input, output);
0071 }
0072 
0073 #include "moc_blocktest.cpp"