//package com.yaoyicloud.render.test;
//
//import static org.junit.Assert.assertTrue;
//import java.io.IOException;
//import java.nio.file.Files;
//import java.nio.file.Paths;
//import java.util.Map;
//
//import com.google.protobuf.InvalidProtocolBufferException;
//import com.google.protobuf.util.JsonFormat;
//import com.yaoyicloud.message.FxyProtos;
//import org.junit.Test;
//
//import com.yaoyicloud.message.FxyProtos.AntiBribery;
//import com.yaoyicloud.message.FxyProtos.CheckSummary;
//import com.yaoyicloud.message.FxyProtos.QuestionnaireItem;
//import com.yaoyicloud.render.platform.OtherRender;
//
//public class
//
//
//
//
//
//
//TestAntiBriberyRender {
//
//    @Test
//    public void testRenderDocx() throws IOException {
//
//        byte[] content = Files
//            .readAllBytes(Paths.get(getClass().getClassLoader().getResource("docx/antiBribery.docx").getFile()));
//        OtherRender render = new OtherRender("../temp/");
//        String retPath = render.renderDocx(
//            AntiBribery.newBuilder()
//                .setAntiBriberySummary(CheckSummary.newBuilder().setRiskSummary("high risk").setSuggestion("accept it"))
//                .addQuestionnaireItems(
//                    QuestionnaireItem.newBuilder().setId(1).setQuestion("question1").setAnswer("answer1"))
//                .addQuestionnaireItems(
//                    QuestionnaireItem.newBuilder().setId(1).setQuestion("question2").setAnswer("answer2"))
//                .build(),
//            Map.of(),
//            content);
//
//        assertTrue(retPath.length() > 0);
//    }
//
//    @Test
//    public void testNullValuesInProtobuf() throws InvalidProtocolBufferException {
//        // 创建 Protobuf 对象构建器
//        FxyProtos.CheckSummary.Builder builder = FxyProtos.CheckSummary.newBuilder();
//
//        // 测试 null 值的处理
//        Object nullValue = null;
//
//        // 方式1：直接设置 null（会触发 NullPointerException，需注释掉此行观察）
//        // builder.setRiskSummary((String) nullValue); // 取消注释此行会抛出 NPE
//
//        // 方式2：使用安全的方式设置 null（将 null 转换为空字符串或默认值）
//        builder.setRiskSummary(nullValue != null ? (String) nullValue : "")
//                .setSuggestion(nullValue != null ? (String) nullValue : "")
//                .setScore(nullValue != null ? (Integer) nullValue : 0);
//
//        // 构建 Protobuf 对象
//        FxyProtos.CheckSummary protoObject = builder.build();
//
//        // 转换为 JSON（包括默认值字段）
//        String json = JsonFormat.printer()
//                .includingDefaultValueFields()
//                .print(protoObject);
//
//        System.out.println("JSON 格式: " + json);
//
//        // 从 JSON 恢复 Protobuf 对象
//        FxyProtos.CheckSummary.Builder restoredBuilder = FxyProtos.CheckSummary.newBuilder();
//        JsonFormat.parser()
//                .ignoringUnknownFields()
//                .merge(json, restoredBuilder);
//
//        FxyProtos.CheckSummary restoredObject = restoredBuilder.build();
//
//        System.out.println("恢复的 Protobuf 对象: " + restoredObject);
//
//        // 验证字段值
//        System.out.println("riskSummary 是否为空字符串: " + restoredObject.getRiskSummary().isEmpty());
//        System.out.println("suggestion 是否为空字符串: " + restoredObject.getSuggestion().isEmpty());
//        System.out.println("score 是否为 0: " + (restoredObject.getScore() == 0));
//    }
//
//}
