summaryrefslogtreecommitdiff
path: root/tests/test-resource-set.cpp
blob: b05a16ba6dc9da9ffeb1f4cf5209271fbc304965 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include "test-resource-set.h"

using namespace ResourcePolicy;

TestResourceSet::TestResourceSet()
{
    audioPlayback.setType(AudioPlaybackResource);
    videoPlayback.setType(VideoPlaybackResource);
    audioRecorder.setType(AudioRecorderResource);
    videoRecorder.setType(VideoRecorderResource);    
}

TestResourceSet::~TestResourceSet()
{
}

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()
{
    Resource resource;
    resource.setType(AudioPlaybackResource);

    resourceSet->addResource(resource);

    QSet<Resource> resourcesInSet = resourceSet->resources();
    QVERIFY(resourcesInSet.contains(resource));
}

void TestResourceSet::testAddResources()
{
    QSet<Resource> resources;

    resources << audioPlayback << videoPlayback;

    resourceSet->addResources(resources);

    QSet<Resource> resourcesInSet = resourceSet->resources();
    QVERIFY(resourcesInSet == resources);
}

void TestResourceSet::testSetResources()
{
    QSet<Resource> resources, newResources;

    newResources << audioPlayback << videoPlayback;
    resources << audioPlayback << videoPlayback << audioRecorder << videoRecorder;
    resourceSet->setResources(resources);
    QSet<Resource> resourcesInSet = resourceSet->resources();

    resourceSet->setResources(newResources);

    QSet<Resource> resourcesInNewSet = resourceSet->resources();
    QVERIFY(resourcesInNewSet == newResources);
}

void TestResourceSet::testContainsSingle()
{
    QSet<Resource> resources;

    resources << audioPlayback << videoPlayback << audioRecorder;
    resourceSet->setResources(resources);
    QSet<Resource> resourcesInSet = resourceSet->resources();
    resourceSet->setResources(resources);

    bool containsVideoPlayback = resourceSet->contains(videoPlayback);
    QVERIFY(containsVideoPlayback);
}

void TestResourceSet::testDoesNotContainSingle()
{
    QSet<Resource> resources;

    resources << audioPlayback << videoPlayback;
    resourceSet->setResources(resources);
    QSet<Resource> resourcesInSet = resourceSet->resources();
    resourceSet->setResources(resources);

    bool containsVideoRecorder = resourceSet->contains(videoRecorder);
    QEXPECT_FAIL("", "This should fail since searched resource should NOT be in set", Continue);
    QVERIFY(containsVideoRecorder);
}


void TestResourceSet::testContainsSet()
{
    QSet<Resource> resources, subset;

    resources << audioPlayback << videoPlayback << audioRecorder << videoRecorder;
    subset << audioPlayback << videoPlayback;

    resourceSet->setResources(resources);
    QSet<Resource> resourcesInSet = resourceSet->resources();
    resourceSet->setResources(resources);

    bool containsSubset = resourceSet->contains(subset);
    QVERIFY(containsSubset);
}
QTEST_MAIN(TestResourceSet)