#include <gtest/gtest.h>
#include "OpenApiConfig.h"

/**
 * @brief 测试 customOpenAPI 函数正常返回非空 OpenAPI 对象并包含正确的文档信息。
 */
TEST(OpenApiConfigTest, customOpenAPIReturnsValidOpenAPI) {
    OpenApiConfig config;
    OpenAPI api = config.customOpenAPI();
    
    // 验证返回的 OpenAPI 对象不为空（通过 info 成员非空间接验证）
    Info info = api.getInfo();
    EXPECT_FALSE(info.getTitle().empty());
    EXPECT_EQ(info.getTitle(), "信息管理系统 (IMS) API 文档");
    EXPECT_EQ(info.getVersion(), "1.0.0");
    EXPECT_EQ(info.getDescription(), "信息管理系统后端接口文档，支持用户权限管理、业务数据管理、统计分析、日志审计和系统对接等功能。");
    
    // 验证联系人信息
    Contact contact = info.getContact();
    EXPECT_EQ(contact.getName(), "IMS 开发团队");
    EXPECT_EQ(contact.getEmail(), "dev@ims-demo.com");
    EXPECT_EQ(contact.getUrl(), "https://github.com/ims-demo");
    
    // 验证许可证信息
    License license = info.getLicense();
    EXPECT_EQ(license.getName(), "Apache 2.0");
    EXPECT_EQ(license.getUrl(), "https://www.apache.org/licenses/LICENSE-2.0");
}