package com.deepoove.poi.tl.issue;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.HyperLinkTextRenderData;

@DisplayName("Issue331 hyperlink fldSimple")
public class Issue331 {

    @Test
    public void test331() throws Exception {
        HashMap<String, Object> map = new HashMap<String, Object>();
        // 超链接
        HyperLinkTextRenderData hyperLinkTextRenderData = new HyperLinkTextRenderData("Deepoove website.",
                "http://www.deepoove.com");
        hyperLinkTextRenderData.getStyle().setBold(true);
        map.put("link", hyperLinkTextRenderData);
        map.put("maillink", new HyperLinkTextRenderData("发邮件给作者", "mailto:[email protected]?subject=poi-tl"));

        XWPFTemplate template = XWPFTemplate.compile("src/test/resources/issue/331.docx").render(map);
        template.writeToFile("out_issue_331.docx");
    }

    // insertNewRun 实现的bug,如果找不到i元素则在末尾插入,可能需要cursor或者qnameset来插入
    // @Test
    public void testinsertNewRunRun() throws FileNotFoundException, IOException {
        XWPFDocument doc = new XWPFDocument(new FileInputStream("src/test/resources/issue/331_hyper.docx"));
        XWPFParagraph createParagraph = doc.getParagraphArray(0);
        XWPFRun insertNewRun = createParagraph.insertNewRun(0);
        insertNewRun.setText("Hi");

        // FileOutputStream out = new FileOutputStream("out_tem.docx");
        // doc.write(out);
        // doc.close();
        // out.close();

    }

    // @Test
    public void testRunTemlate() throws FileNotFoundException, IOException {
        XWPFTemplate template = XWPFTemplate.compile(new FileInputStream("src/test/resources/issue/331_hyper.docx"));

        template.render(new HashMap<String, Object>() {
            {
                put("title", "Hi");
            }
        });
        // template.writeToFile("out_temp11.docx");

    }

}