• 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 }
87 
88 HWTEST_F(EventReminderTest, UpdateEventWithReminder, testing::ext::TestSize.Level1)
89 {
90     Event event;
91     const string title = "UpdateEventWithReminder";
92     const std::vector<int> reminderTime = {0, 1, 2};
93     event.title = title;
94     event.reminderTime = reminderTime;
95     auto eventId = calendar->AddEvent(event);
96     ASSERT_NE(eventId, 0);
97     std::vector<string> eventKey;
98     auto events = calendar->GetEvents(FilterByTitle(title), eventKey);
99     ASSERT_EQ(events.size(), 1);
100     auto resultEvent = events.at(0);
101     EXPECT_NE(resultEvent.reminderTime, std::nullopt);
102     ASSERT_THAT(resultEvent.reminderTime.value(), ::testing::ElementsAreArray(reminderTime));
103     const std::vector<int> newReminderTime = {4, 5, 6};
104     resultEvent.reminderTime = newReminderTime;
105     auto ret = calendar->UpdateEvent(resultEvent);
106     ASSERT_EQ(ret, 1);
107     events = calendar->GetEvents(FilterByTitle(title), eventKey);
108     ASSERT_EQ(events.size(), 1);
109     auto newResultEvent = events.at(0);
110     EXPECT_NE(newResultEvent.reminderTime, std::nullopt);
111     ASSERT_THAT(newResultEvent.reminderTime.value(), ::testing::ElementsAreArray(newReminderTime));
112 }
113 }