1 /*
2     This file is part of the KContacts framework.
3     SPDX-FileCopyrightText: 2016-2019 Laurent Montel <montel@kde.org>
4 
5     SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #include "vcardlinetest.h"
9 #include "vcardline_p.h"
10 #include <QTest>
11 
VCardLineTest(QObject * parent)12 VCardLineTest::VCardLineTest(QObject *parent)
13     : QObject(parent)
14 {
15 }
16 
~VCardLineTest()17 VCardLineTest::~VCardLineTest()
18 {
19 }
20 
shouldHaveDefaultValue()21 void VCardLineTest::shouldHaveDefaultValue()
22 {
23     KContacts::VCardLine line;
24     QVERIFY(line.identifier().isEmpty());
25     QVERIFY(line.group().isEmpty());
26     QVERIFY(line.parameterList().isEmpty());
27     QVERIFY(line.value().isNull());
28 }
29 
shouldAssignValues()30 void VCardLineTest::shouldAssignValues()
31 {
32     KContacts::VCardLine line;
33     const QString identifier(QStringLiteral("foo"));
34     const QString group(QStringLiteral("bla"));
35     line.setIdentifier(identifier);
36     line.setGroup(group);
37     QMap<QString, QString> map;
38     for (int i = 0; i < 5; ++i) {
39         map.insert(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
40         line.addParameter(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
41     }
42     const QVariant valueVariant = QVariant(QStringLiteral("a"));
43     line.setValue(valueVariant);
44 
45     QVERIFY(!line.parameterList().isEmpty());
46     QCOMPARE(line.parameterList(), QStringList() << map.keys());
47 
48     QCOMPARE(line.identifier(), identifier);
49 
50     QCOMPARE(line.group(), group);
51     QCOMPARE(line.value(), valueVariant);
52 }
53 
shouldCopyValue()54 void VCardLineTest::shouldCopyValue()
55 {
56     KContacts::VCardLine line;
57     const QString identifier(QStringLiteral("foo"));
58     const QString group(QStringLiteral("bla"));
59     line.setIdentifier(identifier);
60     line.setGroup(group);
61     QMap<QString, QString> map;
62     for (int i = 0; i < 5; ++i) {
63         map.insert(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
64         line.addParameter(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
65     }
66     const QVariant valueVariant = QVariant(QStringLiteral("a"));
67     line.setValue(valueVariant);
68 
69     QVERIFY(!line.parameterList().isEmpty());
70     QCOMPARE(line.parameterList(), QStringList() << map.keys());
71 
72     QCOMPARE(line.identifier(), identifier);
73 
74     QCOMPARE(line.group(), group);
75     QCOMPARE(line.value(), valueVariant);
76 
77     KContacts::VCardLine copyLine(line);
78     QVERIFY(!copyLine.parameterList().isEmpty());
79     QCOMPARE(copyLine.parameterList(), QStringList() << map.keys());
80 
81     QCOMPARE(copyLine.identifier(), identifier);
82 
83     QCOMPARE(copyLine.group(), group);
84     QCOMPARE(copyLine.value(), valueVariant);
85 }
86 
shouldEqualValue()87 void VCardLineTest::shouldEqualValue()
88 {
89     KContacts::VCardLine line;
90     const QString identifier(QStringLiteral("foo"));
91     const QString group(QStringLiteral("bla"));
92     line.setIdentifier(identifier);
93     line.setGroup(group);
94     QMap<QString, QString> map;
95     for (int i = 0; i < 5; ++i) {
96         map.insert(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
97         line.addParameter(QStringLiteral("foo%1").arg(i), QStringLiteral("bla%1").arg(i));
98     }
99     const QVariant valueVariant = QVariant(QStringLiteral("a"));
100     line.setValue(valueVariant);
101 
102     QVERIFY(!line.parameterList().isEmpty());
103     QCOMPARE(line.parameterList(), QStringList() << map.keys());
104 
105     QCOMPARE(line.identifier(), identifier);
106 
107     QCOMPARE(line.group(), group);
108     QCOMPARE(line.value(), valueVariant);
109 
110     KContacts::VCardLine copyLine(line);
111     QVERIFY(line == copyLine);
112 }
113 
114 QTEST_MAIN(VCardLineTest)
115