From 0746bbd252fe13ce3c4ae523fc28b0cf27314c05 Mon Sep 17 00:00:00 2001 From: Wolf Bergenheim Date: Fri, 29 Jan 2010 17:20:56 +0200 Subject: Refactored Resource into multiple classes --- tests/test-resource.cpp | 278 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 209 insertions(+), 69 deletions(-) (limited to 'tests/test-resource.cpp') diff --git a/tests/test-resource.cpp b/tests/test-resource.cpp index e5c60bd..2098a88 100644 --- a/tests/test-resource.cpp +++ b/tests/test-resource.cpp @@ -3,139 +3,279 @@ using namespace ResourcePolicy; -TestResource::TestResource() +Resource * TestResource::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; + } } -TestResource::~TestResource() +const char * TestResource::stringFromType(ResourceType type) { + switch(type) { + case AudioPlaybackType: + return "AudioPlaybackType"; + case AudioRecorderType: + return "AudioRecorderType"; + case VideoPlaybackType: + return "VideoPlaybackType"; + case VideoRecorderType: + return "VideoRecorderType"; + case VibraType: + return "VibraType"; + case LedsType: + return "LedsType"; + case BacklightType: + return "BacklightType"; + case SystemButtonType: + return "SystemButtonType"; + case LockButtonType: + return "LockButtonType"; + case ScaleButtonType: + return "ScaleButtonType"; + case SnapButtonType: + return "SnapButtonType"; + case LensCoverType: + return "LensCoverType"; + default: + qDebug("Unknown Type 0x%02x requested", type); + return NULL; + } } -void TestResource::init() +TestResource::TestResource() { - resource = new Resource(); } -void TestResource::cleanup() +TestResource::~TestResource() { - delete resource; } -void TestResource::testType_data() +void TestResource::init() { - QTest::addColumn("type"); - QTest::addColumn("expected"); + 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; +} - QTest::newRow("AudioPlayback") << AudioPlaybackResource << AudioPlaybackResource; - QTest::newRow("VideoPlayback") << VideoPlaybackResource << VideoPlaybackResource; - QTest::newRow("AudioRecorder") << AudioRecorderResource << AudioRecorderResource; - QTest::newRow("VideoRecorder") << VideoRecorderResource << VideoRecorderResource; - QTest::newRow("Invalid") << InvalidResource << InvalidResource; +void TestResource::cleanup() +{ + 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 TestResource::testType() { - QFETCH(ResourceType, type); - QFETCH(ResourceType, expected); - bool setWasSuccessfull = resource->setType(type); - ResourceType result = resource->type(); - - if(expected == InvalidResource) { - QEXPECT_FAIL("", "Expecting to fail since type == InvalidResource", Continue); + for(quint32 type=AudioPlaybackType; type < NumberOfTypes; type++) { + ResourceType expected = (ResourceType)type; + Resource *resource = resourceFromType(expected); + if(resource->type() != expected) { + qDebug("expected ResourceType = %s, got %s", + stringFromType(expected), stringFromType(resource->type())); + } + QVERIFY(resource->type() == expected); } - QVERIFY(setWasSuccessfull); - QCOMPARE(result, expected); } void TestResource::testOptional_data() { + QTest::addColumn("type"); QTest::addColumn("optional"); QTest::addColumn("expected"); - QTest::newRow("Resource is optional") << true << true; - QTest::newRow("Resource is not optional") << false << false; + QTest::newRow("Resource is optional") << AudioPlaybackType << true << true; + QTest::newRow("Resource is not optional") << AudioPlaybackType << false << false; + QTest::newRow("Resource is optional") << AudioRecorderType << true << true; + QTest::newRow("Resource is not optional") << AudioRecorderType << false << false; + QTest::newRow("Resource is optional") << VideoPlaybackType << true << true; + QTest::newRow("Resource is not optional") << VideoPlaybackType << false << false; + QTest::newRow("Resource is optional") << VideoRecorderType << true << true; + QTest::newRow("Resource is not optional") << VideoRecorderType << false << false; + QTest::newRow("Resource is optional") << VibraType << true << true; + QTest::newRow("Resource is not optional") << VibraType<< false << false; + QTest::newRow("Resource is optional") << BacklightType << true << true; + QTest::newRow("Resource is not optional") << BacklightType << false << false; + QTest::newRow("Resource is optional") << SystemButtonType << true << true; + QTest::newRow("Resource is not optional") << SystemButtonType << false << false; + QTest::newRow("Resource is optional") << LedsType << true << true; + QTest::newRow("Resource is not optional") << LedsType << false << false; + QTest::newRow("Resource is optional") << LockButtonType << true << true; + QTest::newRow("Resource is not optional") << LockButtonType << false << false; + QTest::newRow("Resource is optional") << ScaleButtonType << true << true; + QTest::newRow("Resource is not optional") << ScaleButtonType << false << false; + QTest::newRow("Resource is optional") << SnapButtonType << true << true; + QTest::newRow("Resource is not optional") << SnapButtonType << false << false; + QTest::newRow("Resource is optional") << LensCoverType << true << true; + QTest::newRow("Resource is not optional") << LensCoverType << false << false; } void TestResource::testOptional() { + QFETCH(ResourceType, type); QFETCH(bool, optional); QFETCH(bool, expected); - resource->setType(AudioPlaybackResource); + Resource *resource = resourceFromType(type); + resource->setOptional(optional); bool result = resource->isOptional(); - QCOMPARE(result, expected); + QVERIFY(result == expected); } void TestResource::testShared_data() { - QTest::addColumn("optional"); + QTest::addColumn("type"); + QTest::addColumn("shared"); QTest::addColumn("expected"); - QTest::newRow("Resource is shared") << true << true; - QTest::newRow("Resource is not shared") << false << false; + QTest::newRow("Resource is shared") << AudioPlaybackType << true << true; + QTest::newRow("Resource is not shared") << AudioPlaybackType << false << false; + QTest::newRow("Resource is shared") << AudioRecorderType << true << true; + QTest::newRow("Resource is not shared") << AudioRecorderType << false << false; + QTest::newRow("Resource is shared") << VideoPlaybackType << true << true; + QTest::newRow("Resource is not shared") << VideoPlaybackType << false << false; + QTest::newRow("Resource is shared") << VideoRecorderType << true << true; + QTest::newRow("Resource is not shared") << VideoRecorderType << false << false; + QTest::newRow("Resource is shared") << VibraType << true << true; + QTest::newRow("Resource is not shared") << VibraType<< false << false; + QTest::newRow("Resource is shared") << BacklightType << true << true; + QTest::newRow("Resource is not shared") << BacklightType << false << false; + QTest::newRow("Resource is shared") << SystemButtonType << true << true; + QTest::newRow("Resource is not shared") << SystemButtonType << false << false; + QTest::newRow("Resource is shared") << LedsType << true << true; + QTest::newRow("Resource is not shared") << LedsType << false << false; + QTest::newRow("Resource is shared") << LockButtonType << true << true; + QTest::newRow("Resource is not shared") << LockButtonType << false << false; + QTest::newRow("Resource is shared") << ScaleButtonType << true << true; + QTest::newRow("Resource is not shared") << ScaleButtonType << false << false; + QTest::newRow("Resource is shared") << SnapButtonType << true << true; + QTest::newRow("Resource is not shared") << SnapButtonType << false << false; + QTest::newRow("Resource is shared") << LensCoverType << true << true; + QTest::newRow("Resource is not shared") << LensCoverType << false << false; } void TestResource::testShared() { - QFETCH(bool, optional); + QFETCH(ResourceType, type); + QFETCH(bool, shared); QFETCH(bool, expected); - resource->setType(AudioPlaybackResource); - resource->setShared(optional); + Resource *resource = resourceFromType(type); + resource->setShared(shared); + bool result = resource->isShared(); QCOMPARE(result, expected); } -void TestResource::testCopy() +void TestResource::testGranted_data() { - Resource copy; - resource->setType(AudioPlaybackResource); - resource->setOptional(); - - copy = *resource; - - QCOMPARE(copy.isOptional(), resource->isOptional()); - QCOMPARE(copy.isShared(), resource->isShared()); - QCOMPARE(copy.type(), resource->type()); + QTest::addColumn("type"); + QTest::addColumn("granted"); + QTest::addColumn("expected"); + + QTest::newRow("Resource is granted") << AudioPlaybackType << true << true; + QTest::newRow("Resource is denied") << AudioPlaybackType << false << false; + QTest::newRow("Resource is granted") << AudioRecorderType << true << true; + QTest::newRow("Resource is denied") << AudioRecorderType << false << false; + QTest::newRow("Resource is granted") << VideoPlaybackType << true << true; + QTest::newRow("Resource is denied") << VideoPlaybackType << false << false; + QTest::newRow("Resource is granted") << VideoRecorderType << true << true; + QTest::newRow("Resource is denied") << VideoRecorderType << false << false; + QTest::newRow("Resource is granted") << VibraType << true << true; + QTest::newRow("Resource is denied") << VibraType<< false << false; + QTest::newRow("Resource is granted") << BacklightType << true << true; + QTest::newRow("Resource is denied") << BacklightType << false << false; + QTest::newRow("Resource is granted") << SystemButtonType << true << true; + QTest::newRow("Resource is denied") << SystemButtonType << false << false; + QTest::newRow("Resource is granted") << LedsType << true << true; + QTest::newRow("Resource is denied") << LedsType << false << false; + QTest::newRow("Resource is granted") << LockButtonType << true << true; + QTest::newRow("Resource is denied") << LockButtonType << false << false; + QTest::newRow("Resource is granted") << ScaleButtonType << true << true; + QTest::newRow("Resource is denied") << ScaleButtonType << false << false; + QTest::newRow("Resource is granted") << SnapButtonType << true << true; + QTest::newRow("Resource is denied") << SnapButtonType << false << false; + QTest::newRow("Resource is granted") << LensCoverType << true << true; + QTest::newRow("Resource is denied") << LensCoverType << false << false; } -void TestResource::testCopyConstructor() +void TestResource::testGranted() { - resource->setType(AudioPlaybackResource); - resource->setOptional(); - Resource copy(*resource); + QFETCH(ResourceType, type); + QFETCH(bool, granted); + QFETCH(bool, expected); - QCOMPARE(copy.isOptional(), resource->isOptional()); - QCOMPARE(copy.isShared(), resource->isShared()); - QCOMPARE(copy.type(), resource->type()); -} + Resource *resource = resourceFromType(type); -void TestResource::testEqualsOperator() -{ - Resource copy; - resource->setType(AudioPlaybackResource); - copy = *resource; + if(granted) + resource->setGranted(); + else + resource->unsetGranted(); + bool result = resource->isGranted(); - resource->setOptional(); - resource->setShared(); - - QVERIFY(copy == *resource); + QVERIFY(result == expected); } -void TestResource::testEqualsOperatorWithDifferentTypes() +void TestResource::testClone() { - Resource copy; - resource->setType(AudioPlaybackResource); - copy = *resource; - - resource->setOptional(); - copy.setType(VideoPlaybackResource); + for(quint32 type=AudioPlaybackType; type < NumberOfTypes; type++) { + Resource *resource = resourceFromType((ResourceType)type); + resource->setOptional(); + Resource *copy = resource->clone(); - QEXPECT_FAIL("", "Expecting to fail since different types.", Continue); - QVERIFY(copy == *resource); + QCOMPARE(copy->isOptional(), resource->isOptional()); + QCOMPARE(copy->isShared(), resource->isShared()); + QCOMPARE(copy->isGranted(), resource->isGranted()); + QCOMPARE(copy->type(), resource->type()); + delete copy; + } } QTEST_MAIN(TestResource) + -- cgit v1.2.3