comparison tests/service-plugin/main.cpp @ 486:0b156b82b8c1

Irccd: rework of paths, closes #611
author David Demelier <markand@malikania.fr>
date Thu, 20 Jul 2017 15:12:41 +0200
parents
children 7e273b7f4f92
comparison
equal deleted inserted replaced
485:daf3aa8b2ddb 486:0b156b82b8c1
1 /*
2 * main.cpp -- test irccd rules
3 *
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 #include <gtest/gtest.h>
20
21 #include <irccd/irccd.hpp>
22 #include <irccd/service.hpp>
23
24 namespace irccd {
25
26 TEST(service_plugin, default_paths)
27 {
28 Irccd irccd;
29
30 irccd.plugins().setPaths({
31 { "cache", "/var/cache/irccd" },
32 { "config", "/etc/irccd" },
33 { "data", "/usr/local/share/irccd" }
34 });
35
36 auto paths = irccd.plugins().paths("ask");
37
38 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]);
39 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]);
40 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]);
41 }
42
43 TEST(service_plugin, override_cache)
44 {
45 Irccd irccd;
46
47 irccd.plugins().setPaths({
48 { "cache", "/var/cache/irccd" },
49 { "config", "/etc/irccd" },
50 { "data", "/usr/local/share/irccd" }
51 });
52 irccd.plugins().setPaths("ask", {
53 { "cache", "/opt/cache/ask" }
54 });
55
56 auto paths = irccd.plugins().paths("ask");
57
58 ASSERT_EQ("/opt/cache/ask", paths["cache"]);
59 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]);
60 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]);
61 }
62
63 TEST(service_plugin, override_config)
64 {
65 Irccd irccd;
66
67 irccd.plugins().setPaths({
68 { "cache", "/var/cache/irccd" },
69 { "config", "/etc/irccd" },
70 { "data", "/usr/local/share/irccd" }
71 });
72 irccd.plugins().setPaths("ask", {
73 { "config", "/opt/config/ask" }
74 });
75
76 auto paths = irccd.plugins().paths("ask");
77
78 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]);
79 ASSERT_EQ("/opt/config/ask", paths["config"]);
80 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]);
81 }
82
83 TEST(service_plugin, override_data)
84 {
85 Irccd irccd;
86
87 irccd.plugins().setPaths({
88 { "cache", "/var/cache/irccd" },
89 { "config", "/etc/irccd" },
90 { "data", "/usr/local/share/irccd" }
91 });
92 irccd.plugins().setPaths("ask", {
93 { "data", "/opt/data/ask" }
94 });
95
96 auto paths = irccd.plugins().paths("ask");
97
98 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]);
99 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]);
100 ASSERT_EQ("/opt/data/ask", paths["data"]);
101 }
102
103 TEST(service_plugin, override_all)
104 {
105 Irccd irccd;
106
107 irccd.plugins().setPaths({
108 { "cache", "/var/cache/irccd" },
109 { "config", "/etc/irccd" },
110 { "data", "/usr/local/share/irccd" }
111 });
112 irccd.plugins().setPaths("ask", {
113 { "cache", "/opt/cache/ask" },
114 { "config", "/opt/config/ask" },
115 { "data", "/opt/data/ask" }
116 });
117
118 auto paths = irccd.plugins().paths("ask");
119
120 ASSERT_EQ("/opt/cache/ask", paths["cache"]);
121 ASSERT_EQ("/opt/config/ask", paths["config"]);
122 ASSERT_EQ("/opt/data/ask", paths["data"]);
123 }
124
125 TEST(service_plugin, extra_paths)
126 {
127 Irccd irccd;
128
129 irccd.plugins().setPaths({
130 { "cache", "/var/cache/irccd" },
131 { "config", "/etc/irccd" },
132 { "data", "/usr/local/share/irccd" }
133 });
134 irccd.plugins().setPaths("ask", {
135 { "extra", "/opt/magic" }
136 });
137
138 auto paths = irccd.plugins().paths("ask");
139
140 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]);
141 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]);
142 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]);
143 ASSERT_EQ("/opt/magic", paths["extra"]);
144 }
145
146 } // !irccd
147
148 int main(int argc, char **argv)
149 {
150 testing::InitGoogleTest(&argc, argv);
151
152 return RUN_ALL_TESTS();
153 }