Add package event listener test 91/199991/1
authorDaehyeon Jung <darrenh.jung@samsung.com>
Fri, 15 Feb 2019 07:27:48 +0000 (16:27 +0900)
committer정대현/Tizen Platform Lab(SR)/Staff Engineer/삼성전자 <darrenh.jung@samsung.com>
Mon, 18 Feb 2019 02:21:10 +0000 (11:21 +0900)
Change-Id: I1428199d2369374b644cba9b3fd7c1ed58eb2cd2

src/unit_tests/mock/package-manager.h
src/unit_tests/package_event_listener_test.cc [new file with mode: 0644]

index da7192e38e8d91b23ebb3c499327ed8c521c0fd5..49ea2d3f56d3bbe29f9e4bc1d7665e7535595bd0 100644 (file)
@@ -8,6 +8,10 @@
 #include <sys/types.h>
 #include "mock.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef enum _pkgmgr_return_val {
   PKGMGR_R_ESYSTEM = -9,  /**< Severe system error */
   PKGMGR_R_EIO = -8,  /**< IO error */
@@ -37,4 +41,8 @@ DECLARE_FAKE_VALUE_FUNC(int, pkgmgr_client_listen_status, pkgmgr_client*,
     pkgmgr_handler, void *);
 DECLARE_FAKE_VALUE_FUNC(int, pkgmgr_client_free, pkgmgr_client*);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif  // MOCK_PACKAGE_MANAGER_H_
diff --git a/src/unit_tests/package_event_listener_test.cc b/src/unit_tests/package_event_listener_test.cc
new file mode 100644 (file)
index 0000000..0a122cf
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved\r
+// Use of this source code is governed by a apache 2.0 license that can be\r
+// found in the LICENSE file.\r
+#include <gmock/gmock.h>\r
+\r
+#include <iostream>\r
+\r
+#include "mock/package-manager.h"\r
+#define __PKG_MANAGER_H__  // To override original header include\r
+#include "common/package_event_listener.h"\r
+\r
+namespace {\r
+\r
+class PackageEventListenerTest : public ::testing::Test {\r
+ protected:\r
+  void SetUp() override {}\r
+  void TearDown() override {}\r
+};\r
+\r
+static pkgmgr_handler callback_;\r
+static void* callback_data_;\r
+\r
+int __pkgmgr_client_listen_status(pkgmgr_client* pc, pkgmgr_handler cb,\r
+    void *data) {\r
+  callback_ = cb;\r
+  callback_data_ = data;\r
+  return 0;\r
+}\r
+\r
+TEST_F(PackageEventListenerTest, CallbackTest) {\r
+  pkgmgr_client_listen_status_fake.custom_fake = __pkgmgr_client_listen_status;\r
+  capmgr::PackageEventListener listener = capmgr::PackageEventListener();\r
+  listener.SubscribePackageEvent();\r
+  listener.RegisterEventHandler([](const std::string& pkgid,\r
+      capmgr::PackageEventListener::EventType type) {\r
+    ASSERT_THAT(pkgid, testing::Eq("org.tizen.test"));\r
+    ASSERT_THAT(type, capmgr::PackageEventListener::EventType::INSTALL);\r
+  });\r
+\r
+  callback_(0, 0, "tpk", "org.tizen.test", "start", "install", "hello",\r
+      callback_data_);\r
+  callback_(0, 0, "tpk", "org.tizen.test", "end", "ok", "hello",\r
+      callback_data_);\r
+\r
+  ASSERT_EQ(pkgmgr_client_new_fake.call_count, 1);\r
+  ASSERT_EQ(pkgmgr_client_listen_status_fake.call_count, 1);\r
+}\r
+\r
+}  // namespace\r