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.
5 #include <gmock/gmock.h>
7 #include "notification-ex/button_item.h"
8 #include "notification-ex/item_inflator.h"
10 using namespace notification;
11 using namespace notification::item;
16 class ButtonItemTest : public ::testing::Test {
18 void SetUp() override {}
19 void TearDown() override {}
23 TEST_F(ButtonItemTest, FindByID) {
24 ButtonItem item("btn_id", "title");
26 AbstractItem& child = item.FindByID("btn_id");
27 ButtonItem& btn = static_cast<ButtonItem&>(child);
28 ASSERT_EQ(btn.GetTitle(), "title");
31 TEST_F(ButtonItemTest, FindByIDNullItemReturn) {
32 ButtonItem item("btn_id", "title");
34 AbstractItem& child = item.FindByID("not_exist_button");
35 ASSERT_EQ(child.GetType(), AbstractItem::NullObject);
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());
44 auto gen_btn = std::static_pointer_cast<ButtonItem>(gen_item);
45 ASSERT_EQ(item.GetTitle(), gen_btn->GetTitle());