move tests to dptr
authorkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Tue, 28 Dec 2010 19:41:20 +0000 (19:41 +0000)
committerkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Tue, 28 Dec 2010 19:41:20 +0000 (19:41 +0000)
git-svn-id: https://silmor.de/svn/softmagic/chester/trunk@691 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33

tests/dptrpriv.cpp [new file with mode: 0644]
tests/dptrtest.cpp [new file with mode: 0644]
tests/dptrtest.h [new file with mode: 0644]
tests/dptrtest.pro [new file with mode: 0644]

diff --git a/tests/dptrpriv.cpp b/tests/dptrpriv.cpp
new file mode 100644 (file)
index 0000000..4e3dc91
--- /dev/null
@@ -0,0 +1,35 @@
+
+#include "dptrtest.h"
+
+#include <QtCore>
+
+class DPTR_CLASS_NAME(ClassWithDptr):public DPtr
+{
+       public:
+               int num;
+               Private(){num=0;}
+};
+DEFINE_DPTR(ClassWithDptr)
+
+
+QString ClassWithDptr::toString()const
+{
+       return QString("class with dptr %1").arg(d->num);
+}
+int ClassWithDptr::num()const{return d->num;}
+void ClassWithDptr::setNum(int n){d->num=n;}
+
+class DPTR_CLASS_NAME(ClassWithSDptr):public SharedDPtr
+{
+       public:
+               int num;
+               Private(){num=0;}
+};
+DEFINE_SHARED_DPTR(ClassWithSDptr)
+
+QString ClassWithSDptr::toString()const
+{
+       return QString("class with shared dptr %1").arg(d->num);
+}
+int ClassWithSDptr::num()const{return d->num;}
+void ClassWithSDptr::setNum(int n){d->num=n;}
diff --git a/tests/dptrtest.cpp b/tests/dptrtest.cpp
new file mode 100644 (file)
index 0000000..273106c
--- /dev/null
@@ -0,0 +1,46 @@
+
+#include "dptrtest.h"
+
+#include <QtCore>
+#include <QtTest>
+#include <QDebug>
+
+void DPtrTest::simpleDP()
+{
+       QCOMPARE(ClassWithDptr().num(),0);
+       ClassWithDptr o1;o1.setNum(1);
+       QCOMPARE(o1.num(),1);
+       ClassWithDptr o2;o2.setNum(2);
+       ClassWithDptr o3(o1);
+       QCOMPARE(o1.num(),1);
+       QCOMPARE(o2.num(),2);
+       QCOMPARE(o3.num(),1);
+       o1=o2;
+       QCOMPARE(o1.num(),2);
+       o2.setNum(3);
+       QCOMPARE(o1.num(),2);
+       QCOMPARE(o2.num(),3);
+}
+
+void DPtrTest::sharedDP()
+{
+       QCOMPARE(ClassWithSDptr().num(),0);
+       ClassWithSDptr o1;o1.setNum(1);
+       QCOMPARE(o1.num(),1);
+       ClassWithSDptr o2;o2.setNum(2);
+       ClassWithSDptr o3(o1);
+       QCOMPARE(o1.num(),1);
+       QCOMPARE(o2.num(),2);
+       QCOMPARE(o3.num(),1);
+       o1.setNum(4);
+       QCOMPARE(o1.num(),4);
+       QCOMPARE(o2.num(),2);
+       QCOMPARE(o3.num(),4);
+       o2=o1;o2.setNum(5);
+       QCOMPARE(o1.num(),5);
+       QCOMPARE(o2.num(),5);
+       QCOMPARE(o3.num(),5);
+}
+
+
+QTEST_MAIN(DPtrTest)
\ No newline at end of file
diff --git a/tests/dptrtest.h b/tests/dptrtest.h
new file mode 100644 (file)
index 0000000..8c821d8
--- /dev/null
@@ -0,0 +1,32 @@
+#include "../../src/dptr.h"
+
+#include <QString>
+
+class ClassWithDptr
+{
+       DECLARE_DPTR(d)
+       public:
+               QString toString()const;
+               int num()const;
+               void setNum(int);
+};
+
+class ClassWithSDptr
+{
+       DECLARE_SHARED_DPTR(d)
+       public:
+               QString toString()const;
+               int num()const;
+               void setNum(int);
+};
+
+
+#include <QObject>
+
+class DPtrTest:public QObject
+{
+       Q_OBJECT
+       private slots:
+               void simpleDP();
+               void sharedDP();
+};
diff --git a/tests/dptrtest.pro b/tests/dptrtest.pro
new file mode 100644 (file)
index 0000000..7abdab0
--- /dev/null
@@ -0,0 +1,7 @@
+TEMPLATE = app
+TARGET = dptrtest
+QT -= gui
+CONFIG += qtestlib debug
+
+SOURCES += dptrtest.cpp dptrpriv.cpp
+HEADERS += dptrtest.h
\ No newline at end of file