• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include <gtest/gtest.h>
16 #include <gmock/gmock.h>
17 #include <memory>
18 #include "native_calendar.h"
19 #include "calendar_log.h"
20 #include "native_calendar_manager.h"
21 
22 
23 namespace OHOS::CalendarApi::Native {
24 const std::string TEST_NAME = "EventReminderTest";
25 static CalendarAccount account {
26     TEST_NAME,
27     "local",
28     "EventReminderTest"
29 };
30 class EventReminderTest : public testing::Test {
31 public:
SetUpTestSuite(void)32     static void SetUpTestSuite(void)
33     {
34         calendar = CalendarManager::GetInstance().CreateCalendar(account);
35         ASSERT_TRUE(calendar != nullptr);
36         LOG_INFO("SetUpTestCase SUCCESS");
37     }
38 
TearDownTestSuite(void)39     static void TearDownTestSuite(void)
40     {
41         auto ret = CalendarManager::GetInstance().DeleteCalendar(*calendar.get());
42         ASSERT_TRUE(ret);
43         LOG_INFO("TearDownTestSuite SUCCESS");
44     }
SetUp()45     void SetUp() {};
TearDown()46     void TearDown() {};
47     static std::shared_ptr<Calendar> calendar;
48 };
49 
50 std::shared_ptr<Calendar> EventReminderTest::calendar = nullptr;
51 
52 HWTEST_F(EventReminderTest, AddEventWithReminder, testing::ext::TestSize.Level1)
53 {
54     Event event;
55     const string title = "AddEventWithReminder";
56     const std::vector<int> reminderTime = {0, 1, 2};
57     event.title = title;
58     event.reminderTime = reminderTime;
59     auto eventId = calendar->AddEvent(event);
60     std::vector<string> eventKey;
61     ASSERT_NE(eventId, 0);
62     auto events = calendar->GetEvents(FilterByTitle(title), eventKey);
63     ASSERT_EQ(events.size(), 1);
64     auto resultEvent = events.at(0);
65     EXPECT_NE(resultEvent.reminderTime, std::nullopt);
66     ASSERT_THAT(resultEvent.reminderTime.value(), ::testing::ElementsAreArray(reminderTime));
67 }
68 
69 HWTEST_F(EventReminderTest, DelEventWithReminder, testing::ext::TestSize.Level1)
70 {
71     Event event;
72     const string title = "DelEventWithReminder";
73     const std::vector<int> reminderTime = {0, 1, 2};
74     event.title = title;
75     event.reminderTime = reminderTime;
76     auto eventId = calendar->AddEvent(event);
77     ASSERT_NE(eventId, 0);
78     std::vector<string> eventKey;
79     auto events = calendar->GetEvents(FilterByTitle(title), eventKey);
80     ASSERT_EQ(events.size(), 1);
81     auto resultEvent = events.at(0);
82     EXPECT_NE(resultEvent.reminderTime, std::nullopt);
83     ASSERT_THAT(resultEvent.reminderTime.value(), ::testing::ElementsAreArray(reminderTime));
84     auto ret = calendar->DeleteEvent(eventId);
85     ASSERT_EQ(ret, 1);
86     auto reminders = calendar->GetRemindersByEventId(eventId);
87     ASSERT_EQ(reminders, std::nullopt);
88 }
89 
90 HWTEST_F(EventReminderTest, UpdateEventWithReminder, testing::ext::TestSize.Level1)
91 {
92     Event event;
93     const string title = "UpdateEventWithReminder";
94     const std::vector<int> reminderTime = {0, 1, 2};
95     event.title = title;
96     event.reminderTime = reminderTime;
97     auto eventId = calendar->AddEvent(event);
98     ASSERT_NE(eventId, 0);
99     std::vector<string> eventKey;
100     auto events = calendar->GetEvents(FilterByTitle(title), eventKey);
101     ASSERT_EQ(events.size(), 1);
102     auto resultEvent = events.at(0);
103     EXPECT_NE(resultEvent.reminderTime, std::nullopt);
104     ASSERT_THAT(resultEvent.reminderTime.value(), ::testing::ElementsAreArray(reminderTime));
105     const std::vector<int> newReminderTime = {4, 5, 6};
106     resultEvent.reminderTime = newReminderTime;
107     auto ret = calendar->UpdateEvent(resultEvent);
108     ASSERT_EQ(ret, 1);
109     events = calendar->GetEvents(FilterByTitle(title), eventKey);
110     ASSERT_EQ(events.size(), 1);
111     auto newResultEvent = events.at(0);
112     EXPECT_NE(newResultEvent.reminderTime, std::nullopt);
113     ASSERT_THAT(newResultEvent.reminderTime.value(), ::testing::ElementsAreArray(newReminderTime));
114 }
115 }