114cf0368Sopenharmony_ci/*
214cf0368Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
314cf0368Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
414cf0368Sopenharmony_ci * you may not use this file except in compliance with the License.
514cf0368Sopenharmony_ci * You may obtain a copy of the License at
614cf0368Sopenharmony_ci *
714cf0368Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
814cf0368Sopenharmony_ci *
914cf0368Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1014cf0368Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1114cf0368Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1214cf0368Sopenharmony_ci * See the License for the specific language governing permissions and
1314cf0368Sopenharmony_ci * limitations under the License.
1414cf0368Sopenharmony_ci */
1514cf0368Sopenharmony_ci#define LOG_TAG "ApplicationUtdJsonParserTest"
1614cf0368Sopenharmony_ci
1714cf0368Sopenharmony_ci#include <unistd.h>
1814cf0368Sopenharmony_ci#include <gtest/gtest.h>
1914cf0368Sopenharmony_ci#include <string>
2014cf0368Sopenharmony_ci
2114cf0368Sopenharmony_ci#include "logger.h"
2214cf0368Sopenharmony_ci#include "unified_record.h"
2314cf0368Sopenharmony_ci#include "link.h"
2414cf0368Sopenharmony_ci
2514cf0368Sopenharmony_ciusing namespace testing::ext;
2614cf0368Sopenharmony_ciusing namespace OHOS::UDMF;
2714cf0368Sopenharmony_ciusing namespace OHOS;
2814cf0368Sopenharmony_cinamespace OHOS::Test {
2914cf0368Sopenharmony_ciusing namespace std;
3014cf0368Sopenharmony_ci
3114cf0368Sopenharmony_ciclass LinkTest : public testing::Test {
3214cf0368Sopenharmony_cipublic:
3314cf0368Sopenharmony_ci    static void SetUpTestCase();
3414cf0368Sopenharmony_ci    static void TearDownTestCase();
3514cf0368Sopenharmony_ci    void SetUp() override;
3614cf0368Sopenharmony_ci    void TearDown() override;
3714cf0368Sopenharmony_ci};
3814cf0368Sopenharmony_ci
3914cf0368Sopenharmony_civoid LinkTest::SetUpTestCase()
4014cf0368Sopenharmony_ci{
4114cf0368Sopenharmony_ci}
4214cf0368Sopenharmony_ci
4314cf0368Sopenharmony_civoid LinkTest::TearDownTestCase()
4414cf0368Sopenharmony_ci{
4514cf0368Sopenharmony_ci}
4614cf0368Sopenharmony_ci
4714cf0368Sopenharmony_civoid LinkTest::SetUp()
4814cf0368Sopenharmony_ci{
4914cf0368Sopenharmony_ci}
5014cf0368Sopenharmony_ci
5114cf0368Sopenharmony_civoid LinkTest::TearDown()
5214cf0368Sopenharmony_ci{
5314cf0368Sopenharmony_ci}
5414cf0368Sopenharmony_ci
5514cf0368Sopenharmony_ci/**
5614cf0368Sopenharmony_ci* @tc.name: LinkTest001
5714cf0368Sopenharmony_ci* @tc.desc: Normal testcase of Link
5814cf0368Sopenharmony_ci* @tc.type: FUNC
5914cf0368Sopenharmony_ci*/
6014cf0368Sopenharmony_ciHWTEST_F(LinkTest, LinkTest001, TestSize.Level1)
6114cf0368Sopenharmony_ci{
6214cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest001 begin.");
6314cf0368Sopenharmony_ci    UDType type = UDType::ENTITY;
6414cf0368Sopenharmony_ci    ValueType value = "value";
6514cf0368Sopenharmony_ci    Link link(type, value);
6614cf0368Sopenharmony_ci    EXPECT_EQ(link.url_, std::get<std::string>(value));
6714cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest001 end.");
6814cf0368Sopenharmony_ci}
6914cf0368Sopenharmony_ci
7014cf0368Sopenharmony_ci/**
7114cf0368Sopenharmony_ci* @tc.name: LinkTest002
7214cf0368Sopenharmony_ci* @tc.desc: Abnormal testcase of Link,because url and description are equal to MAX_TEXT_LEN
7314cf0368Sopenharmony_ci* @tc.type: FUNC
7414cf0368Sopenharmony_ci*/
7514cf0368Sopenharmony_ciHWTEST_F(LinkTest, LinkTest002, TestSize.Level1)
7614cf0368Sopenharmony_ci{
7714cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest002 begin.");
7814cf0368Sopenharmony_ci    const std::string url(MAX_TEXT_LEN, 'a');
7914cf0368Sopenharmony_ci    const std::string description(MAX_TEXT_LEN, 'a');
8014cf0368Sopenharmony_ci    Link link(url, description);
8114cf0368Sopenharmony_ci    EXPECT_NE(link.dataType_, HYPERLINK);
8214cf0368Sopenharmony_ci    EXPECT_NE(link.url_, url);
8314cf0368Sopenharmony_ci    EXPECT_NE(link.description_, description);
8414cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest002 end.");
8514cf0368Sopenharmony_ci}
8614cf0368Sopenharmony_ci
8714cf0368Sopenharmony_ci/**
8814cf0368Sopenharmony_ci* @tc.name: LinkTest003
8914cf0368Sopenharmony_ci* @tc.desc: Abnormal testcase of Link,because url and MAX_TEXT_LEN are equal
9014cf0368Sopenharmony_ci* @tc.type: FUNC
9114cf0368Sopenharmony_ci*/
9214cf0368Sopenharmony_ciHWTEST_F(LinkTest, LinkTest003, TestSize.Level1)
9314cf0368Sopenharmony_ci{
9414cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest003 begin.");
9514cf0368Sopenharmony_ci    const std::string url(MAX_TEXT_LEN, 'a');
9614cf0368Sopenharmony_ci    const std::string description(20, 'a');
9714cf0368Sopenharmony_ci    Link link(url, description);
9814cf0368Sopenharmony_ci    EXPECT_NE(link.dataType_, HYPERLINK);
9914cf0368Sopenharmony_ci    EXPECT_NE(link.url_, url);
10014cf0368Sopenharmony_ci    EXPECT_NE(link.description_, description);
10114cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest003 end.");
10214cf0368Sopenharmony_ci}
10314cf0368Sopenharmony_ci
10414cf0368Sopenharmony_ci/**
10514cf0368Sopenharmony_ci* @tc.name: LinkTest004
10614cf0368Sopenharmony_ci* @tc.desc: Abnormal testcase of Link,because description and MAX_TEXT_LEN are equal
10714cf0368Sopenharmony_ci* @tc.type: FUNC
10814cf0368Sopenharmony_ci*/
10914cf0368Sopenharmony_ciHWTEST_F(LinkTest, LinkTest004, TestSize.Level1)
11014cf0368Sopenharmony_ci{
11114cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest004 begin.");
11214cf0368Sopenharmony_ci    const std::string url(20, 'a');
11314cf0368Sopenharmony_ci    const std::string description(MAX_TEXT_LEN, 'a');
11414cf0368Sopenharmony_ci    Link link(url, description);
11514cf0368Sopenharmony_ci    EXPECT_NE(link.dataType_, HYPERLINK);
11614cf0368Sopenharmony_ci    EXPECT_NE(link.url_, url);
11714cf0368Sopenharmony_ci    EXPECT_NE(link.description_, description);
11814cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "LinkTest004 end.");
11914cf0368Sopenharmony_ci}
12014cf0368Sopenharmony_ci
12114cf0368Sopenharmony_ci/**
12214cf0368Sopenharmony_ci* @tc.name: SetUrlTest001
12314cf0368Sopenharmony_ci* @tc.desc: Abnormal testcase of SetUrl,because url and MAX_TEXT_LEN are equal
12414cf0368Sopenharmony_ci* @tc.type: FUNC
12514cf0368Sopenharmony_ci*/
12614cf0368Sopenharmony_ciHWTEST_F(LinkTest, SetUrlTest001, TestSize.Level1)
12714cf0368Sopenharmony_ci{
12814cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "SetUrlTest001 begin.");
12914cf0368Sopenharmony_ci    const std::string url(MAX_TEXT_LEN, 'a');
13014cf0368Sopenharmony_ci    Link link;
13114cf0368Sopenharmony_ci    link.SetUrl(url);
13214cf0368Sopenharmony_ci    EXPECT_NE(link.url_, url);
13314cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "SetUrlTest001 end.");
13414cf0368Sopenharmony_ci}
13514cf0368Sopenharmony_ci
13614cf0368Sopenharmony_ci/**
13714cf0368Sopenharmony_ci* @tc.name: SetDescription001
13814cf0368Sopenharmony_ci* @tc.desc: Abnormal testcase of SetDescription,because url and MAX_TEXT_LEN are equal
13914cf0368Sopenharmony_ci* @tc.type: FUNC
14014cf0368Sopenharmony_ci*/
14114cf0368Sopenharmony_ciHWTEST_F(LinkTest, SetDescription001, TestSize.Level1)
14214cf0368Sopenharmony_ci{
14314cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "SetDescription001 begin.");
14414cf0368Sopenharmony_ci    const std::string description(MAX_TEXT_LEN, 'a');
14514cf0368Sopenharmony_ci    Link link;
14614cf0368Sopenharmony_ci    link.SetDescription(description);
14714cf0368Sopenharmony_ci    EXPECT_NE(link.description_, description);
14814cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "SetDescription001 end.");
14914cf0368Sopenharmony_ci}
15014cf0368Sopenharmony_ci
15114cf0368Sopenharmony_ci/**
15214cf0368Sopenharmony_ci* @tc.name: SetDescription002
15314cf0368Sopenharmony_ci* @tc.desc: Abnormal testcase of SetDescription,because description and MAX_TEXT_LEN are equal
15414cf0368Sopenharmony_ci* @tc.type: FUNC
15514cf0368Sopenharmony_ci*/
15614cf0368Sopenharmony_ciHWTEST_F(LinkTest, SetDescription002, TestSize.Level1)
15714cf0368Sopenharmony_ci{
15814cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "SetDescription002 begin.");
15914cf0368Sopenharmony_ci    const std::string description(MAX_TEXT_LEN, 'a');
16014cf0368Sopenharmony_ci    Link link;
16114cf0368Sopenharmony_ci    link.SetDescription(description);
16214cf0368Sopenharmony_ci    EXPECT_NE(link.description_, description);
16314cf0368Sopenharmony_ci    LOG_INFO(UDMF_TEST, "SetDescription002 end.");
16414cf0368Sopenharmony_ci}
16514cf0368Sopenharmony_ci} // OHOS::Test