Improve unit TCs
[platform/core/api/notification.git] / unittest / src / test_button_item.cc
1 // Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by a apache 2.0 license that can be
3 // found in the LICENSE file.
4
5 #include <gmock/gmock.h>
6
7 #include "notification-ex/button_item.h"
8 #include "notification-ex/item_inflator.h"
9
10 using namespace notification;
11 using namespace notification::item;
12 using namespace std;
13
14 namespace {
15
16 class ButtonItemTest : public ::testing::Test {
17  protected:
18   void SetUp() override {}
19   void TearDown() override {}
20 };
21
22
23 TEST_F(ButtonItemTest, FindByID) {
24   ButtonItem item("btn_id", "title");
25
26   AbstractItem& child = item.FindByID("btn_id");
27   ButtonItem& btn = static_cast<ButtonItem&>(child);
28   ASSERT_EQ(btn.GetTitle(), "title");
29 }
30
31 TEST_F(ButtonItemTest, FindByIDNullItemReturn) {
32   ButtonItem item("btn_id", "title");
33
34   AbstractItem& child = item.FindByID("not_exist_button");
35   ASSERT_EQ(child.GetType(), AbstractItem::NullObject);
36 }
37
38 TEST_F(ButtonItemTest, SerializeDeserializeGetTitle) {
39   ButtonItem item("title");
40   Bundle b = item.Serialize();
41   shared_ptr<AbstractItem> gen_item = ItemInflator::Create(b);
42   ASSERT_EQ(gen_item->GetType(), item.GetType());
43
44   auto gen_btn = std::static_pointer_cast<ButtonItem>(gen_item);
45   ASSERT_EQ(item.GetTitle(), gen_btn->GetTitle());
46 }
47
48 }  // namespace