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 }