MCPcopy Create free account
hub / github.com/MITK/MITK / usServiceTemplateTest

Function usServiceTemplateTest

Modules/CppMicroServices/test/usServiceTemplateTest.cpp:108–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106using namespace us;
107
108int usServiceTemplateTest(int /*argc*/, char* /*argv*/[])
109{
110 US_TEST_BEGIN("ServiceTemplateTest");
111
112 ModuleContext* mc = GetModuleContext();
113
114 // Register compile tests
115 MyService1 s1;
116 MyService2 s2;
117 MyService3 s3;
118
119 us::ServiceRegistration<Interface1> sr1 = mc->RegisterService<Interface1>(&s1);
120 us::ServiceRegistration<Interface1,Interface2> sr2 = mc->RegisterService<Interface1,Interface2>(&s2);
121 us::ServiceRegistration<Interface1,Interface2,Interface3> sr3 = mc->RegisterService<Interface1,Interface2,Interface3>(&s3);
122
123 MyFactory1 f1;
124 us::ServiceRegistration<Interface1> sfr1 = mc->RegisterService<Interface1>(&f1);
125
126 MyFactory2 f2;
127 us::ServiceRegistration<Interface1,Interface2> sfr2 = mc->RegisterService<Interface1,Interface2>(static_cast<ServiceFactory*>(&f2));
128
129 MyFactory3 f3;
130 us::ServiceRegistration<Interface1,Interface2,Interface3> sfr3 = mc->RegisterService<Interface1,Interface2,Interface3>(static_cast<ServiceFactory*>(&f3));
131
132 US_TEST_CONDITION(mc->GetModule()->GetRegisteredServices().size() == 6, "# of reg services")
133
134 std::vector<us::ServiceReference<Interface1> > s1refs = mc->GetServiceReferences<Interface1>();
135 US_TEST_CONDITION(s1refs.size() == 6, "# of interface1 regs")
136 std::vector<us::ServiceReference<Interface2> > s2refs = mc->GetServiceReferences<Interface2>();
137 US_TEST_CONDITION(s2refs.size() == 4, "# of interface2 regs")
138 std::vector<us::ServiceReference<Interface3> > s3refs = mc->GetServiceReferences<Interface3>();
139 US_TEST_CONDITION(s3refs.size() == 2, "# of interface3 regs")
140
141 Interface1* i1 = mc->GetService(sr1.GetReference());
142 US_TEST_CONDITION(i1 == static_cast<Interface1*>(&s1), "interface1 ptr")
143 i1 = nullptr;
144 US_TEST_CONDITION(mc->UngetService(sr1.GetReference()), "unget interface1 ptr")
145 i1 = mc->GetService(sfr1.GetReference());
146 US_TEST_CONDITION(i1 == static_cast<Interface1*>(f1.m_idToServiceMap[mc->GetModule()->GetModuleId()]), "interface1 factory ptr")
147 i1 = nullptr;
148 US_TEST_CONDITION(mc->UngetService(sfr1.GetReference()), "unget interface1 factory ptr")
149
150 i1 = mc->GetService(sr2.GetReference(InterfaceType<Interface1>()));
151 US_TEST_CONDITION(i1 == static_cast<Interface1*>(&s2), "interface1 ptr")
152 i1 = nullptr;
153 US_TEST_CONDITION(mc->UngetService(sr2.GetReference(InterfaceType<Interface1>())), "unget interface1 ptr")
154 i1 = mc->GetService(sfr2.GetReference(InterfaceType<Interface1>()));
155 US_TEST_CONDITION(i1 == static_cast<Interface1*>(f2.m_idToServiceMap[mc->GetModule()->GetModuleId()]), "interface1 factory ptr")
156 i1 = nullptr;
157 US_TEST_CONDITION(mc->UngetService(sfr2.GetReference(InterfaceType<Interface1>())), "unget interface1 factory ptr")
158 Interface2* i2 = mc->GetService(sr2.GetReference(InterfaceType<Interface2>()));
159 US_TEST_CONDITION(i2 == static_cast<Interface2*>(&s2), "interface2 ptr")
160 i2 = nullptr;
161 US_TEST_CONDITION(mc->UngetService(sr2.GetReference(InterfaceType<Interface2>())), "unget interface2 ptr")
162 i2 = mc->GetService(sfr2.GetReference(InterfaceType<Interface2>()));
163 US_TEST_CONDITION(i2 == static_cast<Interface2*>(f2.m_idToServiceMap[mc->GetModule()->GetModuleId()]), "interface2 factory ptr")
164 i2 = nullptr;
165 US_TEST_CONDITION(mc->UngetService(sfr2.GetReference(InterfaceType<Interface2>())), "unget interface2 factory ptr")

Callers

nothing calls this directly

Calls 9

GetModuleContextFunction · 0.85
GetRegisteredServicesMethod · 0.80
GetModuleIdMethod · 0.80
sizeMethod · 0.45
GetModuleMethod · 0.45
GetServiceMethod · 0.45
GetReferenceMethod · 0.45
UngetServiceMethod · 0.45
UnregisterMethod · 0.45

Tested by

no test coverage detected