Remove boost dependency
[platform/core/appfw/app-installers.git] / test / smoke_tests / libs / test_tag_plugin.cc
1 // Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by an apache 2.0 license that can be
3 // found in the LICENSE file.
4
5 #include <cstring>
6 #include <optional>
7 #include <string>
8 #include <tuple>
9
10 #include "common/plugins/plugin.h"
11 #include "smoke_tests/libs/test_assessor.h"
12
13 namespace ci = common_installer;
14
15 namespace {
16
17 std::optional<std::string> CheckArgs(const char* pkgid) {
18   if (!pkgid)
19     return std::string("Package id is null for tag plugin");
20   if (strcmp(pkgid, ci::kTestPackageId) != 0)
21     return std::string("Package id doesn't match for tag plugin") +
22         "Expected: " + ci::kTestPackageId + " actual: " + pkgid;
23   return {};
24 }
25
26 std::optional<std::string> CheckArgs(xmlDocPtr doc, const char* pkgid) {
27   if (!doc)
28     return std::string("XML doc pointer is null for tag plugin");
29   return CheckArgs(pkgid);
30 }
31
32 }  // namespace
33
34 extern "C" int PKGMGR_PARSER_PLUGIN_PRE_INSTALL(const char* package) {
35   ci::TestAssessor::Instance().AddResult(std::make_tuple(
36       ci::kTagPluginName,
37       ci::Plugin::ActionType::Install,
38       ci::Plugin::ProcessType::Pre),
39       CheckArgs(package));
40   return 0;
41 }
42
43 extern "C" int PKGMGR_PARSER_PLUGIN_PRE_UPGRADE(const char* package) {
44   ci::TestAssessor::Instance().AddResult(std::make_tuple(
45       ci::kTagPluginName,
46       ci::Plugin::ActionType::Upgrade,
47       ci::Plugin::ProcessType::Pre),
48       CheckArgs(package));
49   return 0;
50 }
51 extern "C" int PKGMGR_PARSER_PLUGIN_PRE_UNINSTALL(const char* package) {
52   ci::TestAssessor::Instance().AddResult(std::make_tuple(
53       ci::kTagPluginName,
54       ci::Plugin::ActionType::Uninstall,
55       ci::Plugin::ProcessType::Pre),
56       CheckArgs(package));
57   return 0;
58 }
59
60 extern "C" int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr doc,
61                                             const char* package) {
62   ci::TestAssessor::Instance().AddResult(std::make_tuple(
63       ci::kTagPluginName,
64       ci::Plugin::ActionType::Install,
65       ci::Plugin::ProcessType::Main),
66       CheckArgs(doc, package));
67   return 0;
68 }
69
70 extern "C" int PKGMGR_PARSER_PLUGIN_UPGRADE(xmlDocPtr doc,
71                                             const char* package) {
72   ci::TestAssessor::Instance().AddResult(std::make_tuple(
73      ci::kTagPluginName,
74       ci::Plugin::ActionType::Upgrade,
75       ci::Plugin::ProcessType::Main),
76       CheckArgs(doc, package));
77   return 0;
78 }
79
80 extern "C" int PKGMGR_PARSER_PLUGIN_UNINSTALL(xmlDocPtr doc,
81                                               const char* package) {
82   ci::TestAssessor::Instance().AddResult(std::make_tuple(
83       ci::kTagPluginName,
84       ci::Plugin::ActionType::Uninstall,
85       ci::Plugin::ProcessType::Main),
86       CheckArgs(doc, package));
87   return 0;
88 }
89
90 extern "C" int PKGMGR_PARSER_PLUGIN_POST_INSTALL(const char* package) {
91   ci::TestAssessor::Instance().AddResult(std::make_tuple(
92       ci::kTagPluginName,
93       ci::Plugin::ActionType::Install,
94       ci::Plugin::ProcessType::Post),
95       CheckArgs(package));
96   return 0;
97 }
98
99 extern "C" int PKGMGR_PARSER_PLUGIN_POST_UPGRADE(const char* package) {
100   ci::TestAssessor::Instance().AddResult(std::make_tuple(
101       ci::kTagPluginName,
102       ci::Plugin::ActionType::Upgrade,
103       ci::Plugin::ProcessType::Post),
104       CheckArgs(package));
105   return 0;
106 }
107
108 extern "C" int PKGMGR_PARSER_PLUGIN_POST_UNINSTALL(const char* package) {
109   ci::TestAssessor::Instance().AddResult(std::make_tuple(
110       ci::kTagPluginName,
111       ci::Plugin::ActionType::Uninstall,
112       ci::Plugin::ProcessType::Post),
113       CheckArgs(package));
114   return 0;
115 }