You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2018/04/17 22:06:34 UTC
celix git commit: CELIX-441: Updates bundle ctx and svc registration
mocks for update api
Repository: celix
Updated Branches:
refs/heads/develop 0657853e7 -> 3e415537a
CELIX-441: Updates bundle ctx and svc registration mocks for update api
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/3e415537
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/3e415537
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/3e415537
Branch: refs/heads/develop
Commit: 3e415537a821fd12e255162a14399505f5ba20f3
Parents: 0657853
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Wed Apr 18 00:05:44 2018 +0200
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Wed Apr 18 00:05:44 2018 +0200
----------------------------------------------------------------------
framework/CMakeLists.txt | 4 ++
framework/include/bundle_context.h | 4 +-
framework/private/mock/bundle_context_mock.c | 40 ++++++++++++++++++++
framework/private/mock/framework_mock.c | 4 +-
.../private/mock/service_registration_mock.c | 6 +++
.../private/test/service_registration_test.cpp | 16 --------
framework/src/bundle_context.c | 4 +-
7 files changed, 57 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/3e415537/framework/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt
index f6967b2..ee2fa5a 100644
--- a/framework/CMakeLists.txt
+++ b/framework/CMakeLists.txt
@@ -116,6 +116,10 @@ if (ENABLE_TESTING AND FRAMEWORK_TESTS)
private/mock/bundle_mock.c
private/mock/framework_mock.c
private/mock/service_registry_mock.c
+ private/mock/service_registration_mock.c
+ private/mock/service_reference_mock.c
+ src/service_tracker.c #TODO make mock for svc tracker
+ src/service_tracker_customizer.c
src/bundle_context.c
src/celix_errorcodes.c
private/mock/celix_log_mock.c)
http://git-wip-us.apache.org/repos/asf/celix/blob/3e415537/framework/include/bundle_context.h
----------------------------------------------------------------------
diff --git a/framework/include/bundle_context.h b/framework/include/bundle_context.h
index 0ca82f4..2844d7d 100644
--- a/framework/include/bundle_context.h
+++ b/framework/include/bundle_context.h
@@ -79,7 +79,7 @@ bundleContext_registerServiceFactory(bundle_context_pt context, const char *serv
* @param properties The meta properties assiated with the service. The service registration will take ownership of the properties
* @return The serviceId or < 0 if registration was unsuccessful.
*/
-long bundleContext_registerCService(bundle_context_t *ctx, const char *serviceName, const void *svc, properties_t *properties);
+long bundleContext_registerCService(bundle_context_t *ctx, const char *serviceName, void *svc, properties_t *properties);
/**
* Register a service for the specified language to the framework.
@@ -90,7 +90,7 @@ long bundleContext_registerCService(bundle_context_t *ctx, const char *serviceNa
* @param properties The meta properties assiated with the service. The service registration will take ownership of the properties
* @return The serviceId or < 0 if registration was unsuccessful.
*/
-long bundleContext_registerServiceForLang(bundle_context_t *ctx, const char *serviceName, const void *svc, properties_t *properties, const char* lang);
+long bundleContext_registerServiceForLang(bundle_context_t *ctx, const char *serviceName, void *svc, properties_t *properties, const char* lang);
/**
* Unregister the service with service id. The service will only be unregistered if the bundle of the bundle context
http://git-wip-us.apache.org/repos/asf/celix/blob/3e415537/framework/private/mock/bundle_context_mock.c
----------------------------------------------------------------------
diff --git a/framework/private/mock/bundle_context_mock.c b/framework/private/mock/bundle_context_mock.c
index 6ec5fae..689f0bb 100644
--- a/framework/private/mock/bundle_context_mock.c
+++ b/framework/private/mock/bundle_context_mock.c
@@ -23,6 +23,7 @@
* \author <a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
* \copyright Apache License, Version 2.0
*/
+#include <CppUTestExt/MockSupport_c.h>
#include "CppUTestExt/MockSupport_c.h"
#include "bundle_context.h"
@@ -192,3 +193,42 @@ celix_status_t bundleContext_getProperty(bundle_context_pt context, const char *
->withOutputParameter("value", value);
return mock_c()->returnValue().value.intValue;
}
+
+long bundleContext_registerCService(bundle_context_t *ctx, const char *serviceName, void *svc, properties_t *properties) {
+ mock_c()->actualCall("bundleContext_registerCService")
+ ->withPointerParameters("ctx", ctx)
+ ->withStringParameters("serviceName", serviceName)
+ ->withPointerParameters("svc", svc)
+ ->withPointerParameters("properties", properties);
+ return mock_c()->returnValue().value.longIntValue;
+}
+
+long bundleContext_registerServiceForLang(bundle_context_t *ctx, const char *serviceName, void *svc, properties_t *properties, const char* lang) {
+ mock_c()->actualCall("bundleContext_registerServiceForLang")
+ ->withPointerParameters("ctx", ctx)
+ ->withStringParameters("serviceName", serviceName)
+ ->withConstPointerParameters("svc", svc)
+ ->withPointerParameters("properties", properties)
+ ->withStringParameters("lang", lang);
+ return mock_c()->returnValue().value.longIntValue;
+}
+
+void bundleContext_unregisterService(bundle_context_t *ctx, long serviceId) {
+ mock_c()->actualCall("bundleContext_unregisterService")
+ ->withPointerParameters("ctx", ctx)
+ ->withLongIntParameters("serviceId", serviceId);
+}
+
+bool bundleContext_useServiceWithId(
+ bundle_context_t *ctx,
+ long serviceId,
+ void *callbackHandle,
+ void (*use)(void *handle, void* svc, const properties_t *props, const bundle_t *owner)
+) {
+ mock_c()->actualCall("bundleContext_registerServiceForLang")
+ ->withPointerParameters("ctx", ctx)
+ ->withLongIntParameters("serviceId", serviceId)
+ ->withPointerParameters("callbackHandle", callbackHandle)
+ ->withPointerParameters("use", use);
+ return mock_c()->returnValue().value.boolValue;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/celix/blob/3e415537/framework/private/mock/framework_mock.c
----------------------------------------------------------------------
diff --git a/framework/private/mock/framework_mock.c b/framework/private/mock/framework_mock.c
index 399935f..2498fa2 100644
--- a/framework/private/mock/framework_mock.c
+++ b/framework/private/mock/framework_mock.c
@@ -23,6 +23,7 @@
* \author <a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
* \copyright Apache License, Version 2.0
*/
+#include <CppUTestExt/MockSupport_c.h>
#include "CppUTestExt/MockSupport_c.h"
#include "framework_private.h"
@@ -47,8 +48,9 @@ celix_status_t framework_start(framework_pt framework) {
return mock_c()->returnValue().value.intValue;
}
-void framework_stop(framework_pt framework) {
+celix_status_t framework_stop(framework_pt framework) {
mock_c()->actualCall("framework_stop");
+ return mock_c()->returnValue().value.intValue;
}
celix_status_t fw_getProperty(framework_pt framework, const char* name, const char* defaultValue, const char** value) {
http://git-wip-us.apache.org/repos/asf/celix/blob/3e415537/framework/private/mock/service_registration_mock.c
----------------------------------------------------------------------
diff --git a/framework/private/mock/service_registration_mock.c b/framework/private/mock/service_registration_mock.c
index 934e11b..4bbf0c8 100644
--- a/framework/private/mock/service_registration_mock.c
+++ b/framework/private/mock/service_registration_mock.c
@@ -23,6 +23,7 @@
* \author <a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
* \copyright Apache License, Version 2.0
*/
+#include <CppUTestExt/MockSupport_c.h>
#include "CppUTestExt/MockSupport_c.h"
#include "service_registration.h"
@@ -138,4 +139,9 @@ void serviceRegistration_release(service_registration_pt registration) {
}
+long serviceRegistration_getServiceId(service_registration_t *registration) {
+ mock_c()->actualCall("serviceRegistration_getServiceId")
+ ->withPointerParameters("registration", registration);
+ return mock_c()->returnValue().value.longIntValue;
+}
http://git-wip-us.apache.org/repos/asf/celix/blob/3e415537/framework/private/test/service_registration_test.cpp
----------------------------------------------------------------------
diff --git a/framework/private/test/service_registration_test.cpp b/framework/private/test/service_registration_test.cpp
index 916da93..da4420d 100644
--- a/framework/private/test/service_registration_test.cpp
+++ b/framework/private/test/service_registration_test.cpp
@@ -387,22 +387,6 @@ TEST(service_registration, getServiceName) {
free(name);
}
-TEST(service_registration, getServiceNameIllegalArgument) {
- registry_callback_t callback;
- char * name = my_strdup("sevice_name");
- service_registration_pt registration = serviceRegistration_create(callback, NULL, name, 0, NULL, NULL);
- const char *actual = (char *) 0x01;
-
- mock().expectOneCall("framework_logCode")
- .withParameter("code", CELIX_ILLEGAL_ARGUMENT);
-
- celix_status_t status = serviceRegistration_getServiceName(registration, &actual);
- LONGS_EQUAL(CELIX_ILLEGAL_ARGUMENT, status);
-
- serviceRegistration_release(registration);
- free(name);
-}
-
TEST(service_registration, getBundle) {
registry_callback_t callback;
char * name = my_strdup("sevice_name");
http://git-wip-us.apache.org/repos/asf/celix/blob/3e415537/framework/src/bundle_context.c
----------------------------------------------------------------------
diff --git a/framework/src/bundle_context.c b/framework/src/bundle_context.c
index 5cbe67a..904ec51 100644
--- a/framework/src/bundle_context.c
+++ b/framework/src/bundle_context.c
@@ -384,12 +384,12 @@ celix_status_t bundleContext_getPropertyWithDefault(bundle_context_pt context, c
}
-long bundleContext_registerCService(bundle_context_t *ctx, const char *serviceName, const void *svc, properties_t *properties) {
+long bundleContext_registerCService(bundle_context_t *ctx, const char *serviceName, void *svc, properties_t *properties) {
return bundleContext_registerServiceForLang(ctx, serviceName, svc, properties, CELIX_FRAMEWORK_SERVICE_C_LANGUAGE);
}
-long bundleContext_registerServiceForLang(bundle_context_t *ctx, const char *serviceName, const void *svc, properties_t *properties, const char* lang) {
+long bundleContext_registerServiceForLang(bundle_context_t *ctx, const char *serviceName, void *svc, properties_t *properties, const char* lang) {
long svcId = -1;
if (properties == NULL) {
properties = properties_create();