summaryrefslogtreecommitdiff
path: root/test/plugin/PluginTest.c
blob: 7c2a575e3eee99b9f6c536419c981632574aa9d5 (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
#include "unit/TestRunner.h"
#include "plugin/Plugin.h"

static int _testPluginFactory(void)
{
    CharString silence = newCharStringWithCString("mrs_silence");
    CharString pluginRoot = newCharString();
    Plugin p = pluginFactory(silence, pluginRoot);

    assertNotNull(p);
    assertIntEquals(PLUGIN_TYPE_INTERNAL, p->interfaceType);
    assertCharStringEquals(silence->data, p->pluginName);

    freeCharString(silence);
    freeCharString(pluginRoot);
    freePlugin(p);
    return 0;
}

static int _testPluginFactoryInvalidPlugin(void)
{
    CharString invalid = newCharStringWithCString("invalid");
    CharString pluginRoot = newCharString();
    Plugin p = pluginFactory(invalid, pluginRoot);

    assertIsNull(p);

    freeCharString(invalid);
    freeCharString(pluginRoot);
    freePlugin(p);
    return 0;
}

static int _testPluginFactoryNullPluginName(void)
{
    CharString pluginRoot = newCharString();
    Plugin p = pluginFactory(NULL, pluginRoot);

    assertIsNull(p);

    freeCharString(pluginRoot);
    freePlugin(p);
    return 0;
}

static int _testPluginFactoryEmptyPluginName(void)
{
    CharString invalid = newCharString();
    CharString pluginRoot = newCharString();
    Plugin p = pluginFactory(invalid, pluginRoot);

    assertIsNull(p);

    freeCharString(invalid);
    freeCharString(pluginRoot);
    freePlugin(p);
    return 0;
}

static int _testPluginFactoryNullRoot(void)
{
    CharString silence = newCharStringWithCString("mrs_silence");
    Plugin p = pluginFactory(silence, NULL);

    assertNotNull(p);
    assertIntEquals(PLUGIN_TYPE_INTERNAL, p->interfaceType);
    assertCharStringEquals(silence->data, p->pluginName);

    freeCharString(silence);
    freePlugin(p);
    return 0;
}

static int _testFreeNullPlugin(void)
{
    freePlugin(NULL);
    return 0;
}

TestSuite addPluginTests(void);
TestSuite addPluginTests(void)
{
    TestSuite testSuite = newTestSuite("Plugin", NULL, NULL);
    addTest(testSuite, "PluginFactory", _testPluginFactory);
    addTest(testSuite, "PluginFactoryInvalidPlugin", _testPluginFactoryInvalidPlugin);
    addTest(testSuite, "PluginFactoryNullPluginName", _testPluginFactoryNullPluginName);
    addTest(testSuite, "PluginFactoryEmptyPluginName", _testPluginFactoryEmptyPluginName);
    addTest(testSuite, "PluginFactoryNullRoot", _testPluginFactoryNullRoot);
    addTest(testSuite, "FreeNullPlugin", _testFreeNullPlugin);
    return testSuite;
}