1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the test suite of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21 ** included in the packaging of this file. Please review the following
22 ** information to ensure the GNU General Public License requirements will
23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24 **
25 ** $QT_END_LICENSE$
26 **
27 ****************************************************************************/
28
29 #include <QtCore/QString>
30 #include <QtTest/QtTest>
31
32 #include <qplaceratings.h>
33
34 QT_USE_NAMESPACE
35
36 class tst_QPlaceRatings : public QObject
37 {
38 Q_OBJECT
39
40 public:
41 tst_QPlaceRatings();
42
43 private Q_SLOTS:
44 void constructorTest();
45 void averageTest();
46 void countTest();
47 void operatorsTest();
48 void isEmptyTest();
49 };
50
tst_QPlaceRatings()51 tst_QPlaceRatings::tst_QPlaceRatings()
52 {
53 }
54
constructorTest()55 void tst_QPlaceRatings::constructorTest()
56 {
57 QPlaceRatings testObj;
58 Q_UNUSED(testObj);
59
60 QPlaceRatings *testObjPtr = new QPlaceRatings(testObj);
61 QVERIFY2(testObjPtr != NULL, "Copy constructor - null");
62 QVERIFY2(testObjPtr->count() == 0, "Copy constructor - wrong count");
63 QVERIFY2(testObjPtr->average() == 0, "Copy constructor - wrong average");
64 QVERIFY2(*testObjPtr == testObj, "Copy constructor - compare");
65 delete testObjPtr;
66 }
67
averageTest()68 void tst_QPlaceRatings::averageTest()
69 {
70 QPlaceRatings testObj;
71 QVERIFY2(qFuzzyCompare(testObj.average(), 0) , "Wrong default average");
72 testObj.setAverage(-10.23);
73 QCOMPARE(testObj.average(), -10.23);
74 }
75
countTest()76 void tst_QPlaceRatings::countTest()
77 {
78 QPlaceRatings testObj;
79 QVERIFY2(testObj.count() == 0, "Wrong default value");
80 testObj.setCount(-1002);
81 QVERIFY2(testObj.count() == -1002, "Wrong value returned");
82 }
83
operatorsTest()84 void tst_QPlaceRatings::operatorsTest()
85 {
86 QPlaceRatings testObj;
87 testObj.setAverage(0.123);
88 QPlaceRatings testObj2;
89 testObj2 = testObj;
90 QVERIFY2(testObj == testObj2, "Not copied correctly");
91 testObj2.setCount(-10);
92 QVERIFY2(testObj != testObj2, "Object should be different");
93 }
94
isEmptyTest()95 void tst_QPlaceRatings::isEmptyTest()
96 {
97 QPlaceRatings ratings;
98
99 QVERIFY(ratings.isEmpty());
100
101 ratings.setCount(1);
102 QVERIFY(!ratings.isEmpty());
103 ratings.setCount(0);
104 QVERIFY(ratings.isEmpty());
105
106 ratings.setMaximum(1);
107 QVERIFY(!ratings.isEmpty());
108 ratings.setMaximum(0);
109 QVERIFY(ratings.isEmpty());
110
111 ratings.setAverage(1);
112 QVERIFY(!ratings.isEmpty());
113 ratings.setAverage(0);
114 QVERIFY(ratings.isEmpty());
115 }
116
117 QTEST_APPLESS_MAIN(tst_QPlaceRatings);
118
119 #include "tst_qplaceratings.moc"
120