summaryrefslogtreecommitdiff
path: root/tests/test-resource-set
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-resource-set')
-rw-r--r--tests/test-resource-set/test-resource-set.cpp172
-rw-r--r--tests/test-resource-set/test-resource-set.h50
-rw-r--r--tests/test-resource-set/test-resource-set.pro21
3 files changed, 243 insertions, 0 deletions
diff --git a/tests/test-resource-set/test-resource-set.cpp b/tests/test-resource-set/test-resource-set.cpp
new file mode 100644
index 0000000..e9ee74b
--- /dev/null
+++ b/tests/test-resource-set/test-resource-set.cpp
@@ -0,0 +1,172 @@
+#include "test-resource-set.h"
+
+Resource * TestResourceSet::resourceFromType(ResourceType type)
+{
+ switch(type) {
+ case AudioPlaybackType:
+ return audioResource;
+ case AudioRecorderType:
+ return audioRecorderResource;
+ case VideoPlaybackType:
+ return videoResource;
+ case VideoRecorderType:
+ return videoRecorderResource;
+ case VibraType:
+ return vibraResource;
+ case LedsType:
+ return ledsResource;
+ case BacklightType:
+ return backlightResource;
+ case SystemButtonType:
+ return systemButtonResource;
+ case LockButtonType:
+ return lockButtonResource;
+ case ScaleButtonType:
+ return scaleButtonResource;
+ case SnapButtonType:
+ return snapButtonResource;
+ case LensCoverType:
+ return lensCoverResource;
+ default:
+ return NULL;
+ }
+}
+
+using namespace ResourcePolicy;
+
+TestResourceSet::TestResourceSet()
+{
+ audioResource = new AudioResource;
+ audioRecorderResource = new AudioRecorderResource;
+ videoResource = new VideoResource;
+ videoRecorderResource = new VideoRecorderResource;
+ vibraResource = new VibraResource;
+ ledsResource = new LedsResource;
+ backlightResource = new BacklightResource;
+ systemButtonResource = new SystemButtonResource;
+ lockButtonResource = new LockButtonResource;
+ scaleButtonResource = new ScaleButtonResource;
+ snapButtonResource = new SnapButtonResource;
+ lensCoverResource = new LensCoverResource;
+}
+
+TestResourceSet::~TestResourceSet()
+{
+ delete audioResource;
+ delete audioRecorderResource;
+ delete videoResource;
+ delete videoRecorderResource;
+ delete vibraResource;
+ delete ledsResource;
+ delete backlightResource;
+ delete systemButtonResource;
+ delete lockButtonResource;
+ delete scaleButtonResource;
+ delete snapButtonResource;
+ delete lensCoverResource;
+}
+
+void TestResourceSet::init()
+{
+ resourceSet = new ResourceSet("player");
+}
+
+void TestResourceSet::cleanup()
+{
+ delete resourceSet;
+}
+
+void TestResourceSet::testIdentifier()
+{
+ ResourceSet otherSet("game");
+
+ bool identifiersAreUnique = (resourceSet->id() != otherSet.id());
+ QVERIFY(identifiersAreUnique);
+ QVERIFY(resourceSet->id() == (quint32)resourceSet);
+ QVERIFY(otherSet.id() == (quint32)&otherSet);
+}
+
+void TestResourceSet::testAddResource()
+{
+ for(int i=0;i<NumberOfTypes;i++) {
+ ResourceType type = (ResourceType)i;
+ Resource *resource = resourceFromType(type);
+ resourceSet->addResource(resource);
+ bool setContainsGivenResource = resourceSet->contains(type);
+ QVERIFY(setContainsGivenResource);
+ }
+}
+
+void TestResourceSet::testAddResources()
+{
+ resourceSet->addResource(audioResource);
+
+ bool setContainsAudioResource = resourceSet->contains(AudioPlaybackType);
+ QVERIFY(setContainsAudioResource);
+ QList<Resource *> resources;
+
+ resources << audioResource << videoResource;
+
+ resourceSet->addResources(resources);
+
+ QVERIFY(resourceSet->contains(AudioPlaybackType));
+ QVERIFY(resourceSet->contains(VideoPlaybackType));
+}
+
+void TestResourceSet::testDelResource()
+{
+ resourceSet->addResource(audioResource);
+ resourceSet->addResource(vibraResource);
+ resourceSet->delResource(AudioPlaybackType);
+
+ bool setDoesNotContainAudioResource = !resourceSet->contains(AudioPlaybackType);
+ QVERIFY(setDoesNotContainAudioResource);
+ QVERIFY(resourceSet->contains(VibraType));
+}
+
+void TestResourceSet::testContainsSingle()
+{
+ QList<Resource *> resources;
+
+ resources << audioResource << videoResource << audioRecorderResource;
+ resourceSet->addResources(resources);
+ QList<Resource *> resourcesInSet = resourceSet->resources();
+
+ bool containsVideoPlayback = resourceSet->contains(VideoPlaybackType);
+ QVERIFY(containsVideoPlayback);
+}
+
+void TestResourceSet::testDoesNotContainSingle()
+{
+ QList<Resource *> resources;
+
+ resources << audioResource << videoResource;
+ resourceSet->addResources(resources);
+ QList<Resource *> resourcesInSet = resourceSet->resources();
+
+ bool doesNotContainVideoRecorder = !resourceSet->contains(VideoRecorderType);
+ QVERIFY(doesNotContainVideoRecorder);
+}
+
+
+void TestResourceSet::testContainsSet()
+{
+ QList<ResourceType> types, subset;
+ QList<Resource *> resources;
+
+ types << AudioPlaybackType << VideoPlaybackType
+ << AudioRecorderType << VideoRecorderType << LensCoverType;
+ subset << AudioPlaybackType << VideoPlaybackType << LensCoverType;
+
+ resources << audioResource << videoResource
+ << audioRecorderResource << videoRecorderResource << lensCoverResource;
+
+ resourceSet->addResources(resources);
+
+ bool containsAll = resourceSet->contains(types);
+ bool containsSubset = resourceSet->contains(subset);
+ QVERIFY(containsAll);
+ QVERIFY(containsSubset);
+}
+QTEST_MAIN(TestResourceSet)
+
diff --git a/tests/test-resource-set/test-resource-set.h b/tests/test-resource-set/test-resource-set.h
new file mode 100644
index 0000000..0a3eeef
--- /dev/null
+++ b/tests/test-resource-set/test-resource-set.h
@@ -0,0 +1,50 @@
+#ifndef TEST_RESOURCE_SET_H
+#define TEST_RESOURCE_SET_H
+
+#include <QtTest/QTest>
+#include "resource-set.h"
+
+using namespace ResourcePolicy;
+
+class TestResourceSet: public QObject
+{
+ Q_OBJECT
+private:
+ ResourceSet *resourceSet;
+
+ AudioResource *audioResource;
+ AudioRecorderResource *audioRecorderResource;
+ Resource *videoResource;
+ Resource *videoRecorderResource;
+ Resource *vibraResource;
+ Resource *ledsResource;
+ Resource *backlightResource;
+ Resource *systemButtonResource;
+ Resource *lockButtonResource;
+ Resource *scaleButtonResource;
+ Resource *snapButtonResource;
+ Resource *lensCoverResource;
+
+ Resource * resourceFromType(ResourceType type);
+public:
+ TestResourceSet();
+ ~TestResourceSet();
+
+
+private slots:
+
+ void init();
+ void cleanup();
+
+ void testIdentifier();
+
+ void testAddResource();
+ void testAddResources();
+ void testDelResource();
+
+ void testContainsSingle();
+ void testDoesNotContainSingle();
+ void testContainsSet();
+};
+
+#endif
diff --git a/tests/test-resource-set/test-resource-set.pro b/tests/test-resource-set/test-resource-set.pro
new file mode 100644
index 0000000..ad6d90d
--- /dev/null
+++ b/tests/test-resource-set/test-resource-set.pro
@@ -0,0 +1,21 @@
+BASE = ..
+TEMPLATE = app
+TARGET = test-resource-set
+DESTDIR = build
+DEPENDPATH += $${BASE}/include $${BASE}/src .
+INCLUDEPATH += $${BASE}/src $${BASE}/include
+
+# Input
+HEADERS += $${BASE}/include/resources.h $${BASE}/include/resource-set.h test-resource-set.h
+SOURCES += $${BASE}/src/resource.cpp $${BASE}/src/resources.cpp $${BASE}/src/resource-set.cpp test-resource-set.cpp
+
+OBJECTS_DIR = build
+MOC_DIR = build
+
+CONFIG += qt qtestlib debug warn_on
+QT -= gui
+
+# Install directives
+INSTALLBASE = /usr
+target.path = $$INSTALLBASE/share/libresourceqt/tests
+INSTALLS = target