diff options
Diffstat (limited to 'tests/logic_.h')
-rw-r--r-- | tests/logic_.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/logic_.h b/tests/logic_.h new file mode 100644 index 0000000..29f0e37 --- /dev/null +++ b/tests/logic_.h @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + * @file logic_.h + * @author Janusz Kozerski (j.kozerski@samsung.com) + * @version 1.0 + * @brief This file is the tesst implementation of Logic class + */ + +#ifndef CCHECKER_LOGIC__H +#define CCHECKER_LOGIC__H + +/* + * This Class makes all methods from Logic Class public - for testing purpose. + * Some of methods are stubbed, and some of them just calls corresponding methods from Logic Class. + */ + +#include <cchecker/logic.h> + +namespace CCHECKER { + +class Logic_ : public Logic { + public: + Logic_(void); + virtual ~Logic_(void); + + // For tests only + void connman_callback_manual_(bool state); + void pkgmgr_install_manual_(const app_t &app); + void pkgmgr_uninstall_manual_(const app_t &app); + const std::list<app_t>& get_buffer_(); + + void reset_cnt(); + void wait_for_worker(int installCnt, int uninstallCnt, int bufferCnt); + + private: + int m_installCnt; + int m_uninstallCnt; + int m_bufferCnt; + + void process_event(const event_t &event); + void app_processed(); + std::condition_variable _m_wait_for_process; + std::mutex _m_mutex_wait_cv; +}; + +class LogicWrapper { +public: + LogicWrapper() {} + ~LogicWrapper() { m_logic.clean(); } + + error_t setup() { return m_logic.setup(); } + void clean() { m_logic.clean(); } + void connman_callback_manual_(bool state) { m_logic.connman_callback_manual_(state); } + void pkgmgr_install_manual_(const app_t &app) { m_logic.pkgmgr_install_manual_(app); } + void pkgmgr_uninstall_manual_(const app_t &app) { m_logic.pkgmgr_uninstall_manual_(app); } + const std::list<app_t>& get_buffer_() { return m_logic.get_buffer_(); } + + void wait_for_worker(int installCnt = 0, int uninstallCnt = 0, int bufferCnt = 0) { + m_logic.wait_for_worker(installCnt, uninstallCnt, bufferCnt); + } + +private: + Logic_ m_logic; +}; + +} // CCHECKER + +#endif //CCHECKER_LOGIC__H |