Merge lp:~michihenning/unity-scopes-api/more-unit-tests into lp:unity-scopes-api

Proposed by Michi Henning
Status: Merged
Approved by: Michi Henning
Approved revision: 22
Merged at revision: 22
Proposed branch: lp:~michihenning/unity-scopes-api/more-unit-tests
Merge into: lp:unity-scopes-api
Diff against target: 171 lines (+124/-0)
8 files modified
test/gtest/unity/api/scopes/internal/CMakeLists.txt (+2/-0)
test/gtest/unity/api/scopes/internal/MiddlewareFactory/CMakeLists.txt (+7/-0)
test/gtest/unity/api/scopes/internal/MiddlewareFactory/Factory.ini.in (+3/-0)
test/gtest/unity/api/scopes/internal/MiddlewareFactory/Ice.Config.in (+4/-0)
test/gtest/unity/api/scopes/internal/MiddlewareFactory/MiddlewareFactory_test.cpp (+68/-0)
test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/CMakeLists.txt (+6/-0)
test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/Factory.ini.in (+3/-0)
test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/MiddlewareFactoryConfig_test.cpp (+31/-0)
To merge this branch: bzr merge lp:~michihenning/unity-scopes-api/more-unit-tests
Reviewer Review Type Date Requested Status
Unity Team Pending
Review via email: mp+178653@code.launchpad.net

Commit message

More unit tests for middleware factory.

Description of the change

More unit tests for middleware factory.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'test/gtest/unity/api/scopes/internal/CMakeLists.txt'
2--- test/gtest/unity/api/scopes/internal/CMakeLists.txt 2013-08-05 06:02:03 +0000
3+++ test/gtest/unity/api/scopes/internal/CMakeLists.txt 2013-08-06 01:56:26 +0000
4@@ -1,6 +1,8 @@
5 add_subdirectory(ConfigBase)
6 add_subdirectory(DynamicLoader)
7 add_subdirectory(ice_middleware)
8+add_subdirectory(MiddlewareFactory)
9+add_subdirectory(MiddlewareFactoryConfig)
10 add_subdirectory(RegistryConfig)
11 add_subdirectory(RuntimeConfig)
12 add_subdirectory(RuntimeImpl)
13
14=== added directory 'test/gtest/unity/api/scopes/internal/MiddlewareFactory'
15=== added file 'test/gtest/unity/api/scopes/internal/MiddlewareFactory/CMakeLists.txt'
16--- test/gtest/unity/api/scopes/internal/MiddlewareFactory/CMakeLists.txt 1970-01-01 00:00:00 +0000
17+++ test/gtest/unity/api/scopes/internal/MiddlewareFactory/CMakeLists.txt 2013-08-06 01:56:26 +0000
18@@ -0,0 +1,7 @@
19+configure_file(Factory.ini.in Factory.ini)
20+configure_file(Ice.Config.in Ice.Config)
21+
22+add_executable(MiddlewareFactory_test MiddlewareFactory_test.cpp)
23+target_link_libraries(MiddlewareFactory_test ${TESTLIBS})
24+
25+add_test(MiddlewareFactory MiddlewareFactory_test)
26
27=== added file 'test/gtest/unity/api/scopes/internal/MiddlewareFactory/Factory.ini.in'
28--- test/gtest/unity/api/scopes/internal/MiddlewareFactory/Factory.ini.in 1970-01-01 00:00:00 +0000
29+++ test/gtest/unity/api/scopes/internal/MiddlewareFactory/Factory.ini.in 2013-08-06 01:56:26 +0000
30@@ -0,0 +1,3 @@
31+[MiddlewareFactory]
32+Ice.Configfile = Ice.Config
33+REST.Configfile = REST.Config
34
35=== added file 'test/gtest/unity/api/scopes/internal/MiddlewareFactory/Ice.Config.in'
36--- test/gtest/unity/api/scopes/internal/MiddlewareFactory/Ice.Config.in 1970-01-01 00:00:00 +0000
37+++ test/gtest/unity/api/scopes/internal/MiddlewareFactory/Ice.Config.in 2013-08-06 01:56:26 +0000
38@@ -0,0 +1,4 @@
39+Ice.Plugin.IceUDS.cpp.IceUDS=@IceUDS_LIBDIR@/IceUDS,1.0:create_Ice_UDS
40+Ice.Warn.UnusedProperties=1
41+
42+testscope.Endpoints = uds -f testscope-socket
43
44=== added file 'test/gtest/unity/api/scopes/internal/MiddlewareFactory/MiddlewareFactory_test.cpp'
45--- test/gtest/unity/api/scopes/internal/MiddlewareFactory/MiddlewareFactory_test.cpp 1970-01-01 00:00:00 +0000
46+++ test/gtest/unity/api/scopes/internal/MiddlewareFactory/MiddlewareFactory_test.cpp 2013-08-06 01:56:26 +0000
47@@ -0,0 +1,68 @@
48+/*
49+ * Copyright (C) 2013 Canonical Ltd
50+ *
51+ * This program is free software: you can redistribute it and/or modify
52+ * it under the terms of the GNU Lesser General Public License version 3 as
53+ * published by the Free Software Foundation.
54+ *
55+ * This program is distributed in the hope that it will be useful,
56+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
57+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58+ * GNU Lesser General Public License for more details.
59+ *
60+ * You should have received a copy of the GNU Lesser General Public License
61+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
62+ *
63+ * Authored by: Michi Henning <michi.henning@canonical.com>
64+ */
65+
66+#include <unity/api/scopes/internal/MiddlewareFactory.h>
67+#include <unity/api/scopes/ScopeExceptions.h>
68+
69+#include <gtest/gtest.h>
70+
71+using namespace std;
72+using namespace unity::api::scopes;
73+using namespace unity::api::scopes::internal;
74+
75+TEST(MiddlewareFactory, basic)
76+{
77+ MiddlewareFactory f("Factory.ini");
78+ EXPECT_EQ(nullptr, f.find("nosuchscope", "Ice"));
79+ MiddlewareBase::SPtr not_found;
80+ MiddlewareBase::SPtr mw = f.find("testscope", "Ice");
81+ EXPECT_EQ(not_found, mw);
82+ mw = f.find("testscope", "NoSuchMiddleware");
83+ EXPECT_EQ(not_found, mw);
84+}
85+
86+TEST(MiddlewareFactory, BadKind)
87+{
88+ try
89+ {
90+ MiddlewareFactory f("Factory.ini");
91+ f.create("somescope", "NoSuchMiddleware", "Ice.Config");
92+ FAIL();
93+ }
94+ catch (ConfigException const& e)
95+ {
96+ EXPECT_EQ("unity::api::scopes::ConfigException: Invalid middleware kind: NoSuchMiddleware", e.to_string());
97+ }
98+}
99+
100+TEST(MiddlewareFactory, BadIniFile)
101+{
102+ try
103+ {
104+ MiddlewareFactory f("NoSuchFile.ini");
105+ FAIL();
106+ }
107+ catch (ConfigException const& e)
108+ {
109+ EXPECT_EQ("unity::api::scopes::ConfigException: cannot instantiate MiddlewareFactory: "
110+ "config file: NoSuchFile.ini:\n"
111+ " unity::FileException: Could not load ini file NoSuchFile.ini: "
112+ "No such file or directory (errno = 4)",
113+ e.to_string());
114+ }
115+}
116
117=== added directory 'test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig'
118=== added file 'test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/CMakeLists.txt'
119--- test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/CMakeLists.txt 1970-01-01 00:00:00 +0000
120+++ test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/CMakeLists.txt 2013-08-06 01:56:26 +0000
121@@ -0,0 +1,6 @@
122+configure_file(Factory.ini.in Factory.ini)
123+
124+add_executable(MiddlewareFactoryConfig_test MiddlewareFactoryConfig_test.cpp)
125+target_link_libraries(MiddlewareFactoryConfig_test ${TESTLIBS})
126+
127+add_test(MiddlewareFactoryConfig MiddlewareFactoryConfig_test)
128
129=== added file 'test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/Factory.ini.in'
130--- test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/Factory.ini.in 1970-01-01 00:00:00 +0000
131+++ test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/Factory.ini.in 2013-08-06 01:56:26 +0000
132@@ -0,0 +1,3 @@
133+[MiddlewareFactory]
134+Ice.Configfile = Ice.Config
135+REST.Configfile = REST.Config
136
137=== added file 'test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/MiddlewareFactoryConfig_test.cpp'
138--- test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/MiddlewareFactoryConfig_test.cpp 1970-01-01 00:00:00 +0000
139+++ test/gtest/unity/api/scopes/internal/MiddlewareFactoryConfig/MiddlewareFactoryConfig_test.cpp 2013-08-06 01:56:26 +0000
140@@ -0,0 +1,31 @@
141+/*
142+ * Copyright (C) 2013 Canonical Ltd
143+ *
144+ * This program is free software: you can redistribute it and/or modify
145+ * it under the terms of the GNU Lesser General Public License version 3 as
146+ * published by the Free Software Foundation.
147+ *
148+ * This program is distributed in the hope that it will be useful,
149+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
150+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
151+ * GNU Lesser General Public License for more details.
152+ *
153+ * You should have received a copy of the GNU Lesser General Public License
154+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
155+ *
156+ * Authored by: Michi Henning <michi.henning@canonical.com>
157+ */
158+
159+#include <unity/api/scopes/internal/MiddlewareFactoryConfig.h>
160+
161+#include <gtest/gtest.h>
162+
163+using namespace std;
164+using namespace unity::api::scopes::internal;
165+
166+TEST(MiddlewareFactoryConfig, basic)
167+{
168+ MiddlewareFactoryConfig c("Factory.ini");
169+ EXPECT_EQ("Ice.Config", c.ice_configfile());
170+ EXPECT_EQ("REST.Config", c.rest_configfile());
171+}

Subscribers

People subscribed via source and target branches

to all changes: