Add init and finish functionality
[platform/core/test/security-tests.git] / src / framework / include / dpl / test / test_case.h
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16 /*
17  * @file        test_case.h
18  * @author      Marcin Niesluchowski (m.niesluchow@samsung.com)
19  * @version     1.0
20  * @brief       This file is the header file of TestCase class
21  */
22
23 #ifndef DPL_TEST_CASE_H
24 #define DPL_TEST_CASE_H
25
26 #include <string>
27
28 #include <dpl/test/performance_result.h>
29
30 namespace DPL {
31 namespace Test {
32
33 class TestCase
34 {
35 public:
36     TestCase(const std::string &name)
37         : m_name(name) {}
38     virtual ~TestCase() {}
39
40     bool operator <(const TestCase &other) const {
41         return m_name < other.m_name;
42     }
43     bool operator ==(const TestCase &other) const {
44         return m_name == other.m_name;
45     }
46
47     const std::string& GetName() const {
48         return m_name;
49     }
50     PerformanceResultPtr GetPerformance() const {
51         return m_performance;
52     }
53     void SetPerformance(PerformanceResultPtr performance) {
54         m_performance = performance;
55     }
56
57     virtual void Test() = 0;
58     virtual void Init() = 0;
59     virtual void Finish() = 0;
60
61 private:
62     std::string m_name;
63     PerformanceResultPtr m_performance;
64 };
65
66 typedef TestCase* TestCasePtr;
67
68 } // namespace Test
69 } // namespace DPL
70
71 #endif // DPL_TEST_CASE_H