Remove the headers from the tests and put the class declarations in the cpp files.
[qtgstreamer:qtgstreamer.git] / tests / valuetest.cpp
1 /*
2     Copyright (C) 2009  George Kiagiadakis <kiagiadakis.george@gmail.com>
3
4     This library is free software; you can redistribute it and/or modify
5     it under the terms of the GNU Lesser General Public License as published
6     by the Free Software Foundation; either version 2.1 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU Lesser General Public License
15     along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 #include "qgsttest.h"
18 #include <QGlib/Value>
19 #include <QGlib/Object>
20
21 class ValueTest : public QGstTest
22 {
23     Q_OBJECT
24 private slots:
25     void intTest();
26     void stringTest();
27     void enumTest();
28     void copyTest();
29     void qdebugTest();
30 };
31
32 void ValueTest::intTest()
33 {
34     QGlib::Value v(10);
35     QVERIFY(v.isValid());
36     QCOMPARE(static_cast<GType>(v.type()), G_TYPE_INT);
37     QCOMPARE(v.get<int>(), 10);
38 }
39
40 void ValueTest::stringTest()
41 {
42     QGlib::Value v;
43     QVERIFY(!v.isValid());
44     v.init(QGlib::Type::String);
45     v.set(QString::fromUtf8("Γειά σου κόσμε"));
46     QCOMPARE(static_cast<GType>(v.type()), G_TYPE_STRING);
47     QByteArray b = v.get<QByteArray>();
48     QCOMPARE(QString::fromUtf8(b), QString::fromUtf8("Γειά σου κόσμε"));
49     QCOMPARE(v.get<QString>(), QString::fromUtf8("Γειά σου κόσμε"));
50 }
51
52 void ValueTest::enumTest()
53 {
54     QGlib::Value v;
55     v.init(GST_TYPE_PAD_DIRECTION);
56     v.set(GST_PAD_SINK);
57     QVERIFY(v.isValid());
58     QCOMPARE(static_cast<GType>(v.type()), GST_TYPE_PAD_DIRECTION);
59     QCOMPARE(v.get<GstPadDirection>(), GST_PAD_SINK);
60 }
61
62 void ValueTest::copyTest()
63 {
64     QGlib::Value v(10);
65
66     QGlib::SharedValue sv(v.peekGValue());
67     QVERIFY(sv.isValid());
68     QCOMPARE(static_cast<GType>(sv.type()), G_TYPE_INT);
69     QCOMPARE(sv.get<int>(), 10);
70
71     sv.set(20);
72     QCOMPARE(v.get<int>(), 20);
73
74     {
75         QGlib::Value v2(sv);
76         QVERIFY(v2.isValid());
77         QCOMPARE(static_cast<GType>(v2.type()), G_TYPE_INT);
78         QCOMPARE(v2.get<int>(), 20);
79
80         v2.set(30);
81         QCOMPARE(v.get<int>(), 20);
82         QCOMPARE(sv.get<int>(), 20);
83         QCOMPARE(v2.get<int>(), 30);
84
85         v2 = v;
86         QCOMPARE(v2.get<int>(), 20);
87     }
88
89     {
90         QGlib::Value v2(v);
91         QVERIFY(v2.isValid());
92         QCOMPARE(static_cast<GType>(v2.type()), G_TYPE_INT);
93         QCOMPARE(v2.get<int>(), 20);
94
95         v2.set(30);
96         QCOMPARE(v.get<int>(), 20);
97         QCOMPARE(sv.get<int>(), 20);
98         QCOMPARE(v2.get<int>(), 30);
99
100         v2 = sv;
101         QCOMPARE(v2.get<int>(), 20);
102     }
103 }
104
105 void ValueTest::qdebugTest()
106 {
107     qDebug() << QGlib::Value(10);
108     qDebug() << QGlib::Value(QByteArray("Hello world"));
109     qDebug() << QGlib::Value(QGlib::ObjectPtr());
110 }
111
112
113 QTEST_APPLESS_MAIN(ValueTest)
114
115 #include "moc_qgsttest.cpp"
116 #include "valuetest.moc"