package helper;

import com.yanzuoguang.util.PrinterHelper;
import com.yanzuoguang.util.YzgError;
import com.yanzuoguang.util.helper.FileHelper;
import com.yanzuoguang.util.helper.JsonHelper;
import com.yanzuoguang.util.printer.ConvertPlan;
import com.yanzuoguang.util.printer.vo.PrinterPagerData;
import org.junit.Test;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

public class TestPrinterHelper {
    @Test
    public void testConvert() {

        Map<String, Object> from = new HashMap<>();
        from.put("name", "颜佐光");
        from.put("age", "19");

        Map<String, Object> to = new HashMap<>();
        String format = "xxxx{0:4*4}{0:4*3}{0:4*3}xxxx{age}";

        String formatTo = PrinterHelper.getFormatTo(to, from, format, "name");
        String result = PrinterHelper.getResult(to, formatTo);

        System.out.println("format:" + formatTo);
        System.out.println("json:" + JsonHelper.serialize(to, true));
        System.out.println("result:" + result);
    }

    @Test
    public void testPrinter() {
        String fromJson = FileHelper.readFile(new File(getFile("from.json")), "utf-8");
        PrinterPagerData data = JsonHelper.deserialize(fromJson, PrinterPagerData.class);
        String toJson = JsonHelper.serialize(data, true);
        FileHelper.writeFile(new File(getTargetFile("to.json")), toJson, "utf-8");
    }

    @Test
    public void testPrinterXx() {
        String fromJson = FileHelper.readFile(new File(getFile("from_xx.json")), "utf-8");
        PrinterPagerData data = JsonHelper.deserialize(fromJson, PrinterPagerData.class);
        String toJson = JsonHelper.serialize(data, true);
        FileHelper.writeFile(new File(getTargetFile("to_xx.json")), toJson, "utf-8");
    }

    @Test
    public void testPrinterConvert() {
        Map<String, Object> from = new HashMap<>();
        from.put("OrderId", "11111");
        from.put("createDate", "2019-12-21 12:35");
        from.put("codeNo", "123456789");
        from.put("channelName", "自助机");
        from.put("buyNum", "购买数量");
        from.put("productName", "长江索道单程票");
        from.put("PlayerType", "游客类型");
        from.put("salePriceTotal", "25");

        String fromJson = FileHelper.readFile(new File(getFile("from.json")), "utf-8");
        ConvertPlan convert = PrinterHelper.convertArray(fromJson, 0, 0, from);

        FileHelper.writeFile(new File(getTargetFile("to_1.json")), convert.getPager(), "utf-8");

        String toJson = JsonHelper.serialize(convert.getDatas(), true);
        FileHelper.writeFile(new File(getTargetFile("to_2_data.json")), toJson, "utf-8");
    }

    private String getFile(String from) {
        // 注意,路径应为文件在工程中的相对路径
        File f = new File("src/test/java/helper/" + from);
        if (!f.exists()) {
            System.out.println(f.getAbsoluteFile());
            throw YzgError.getRuntimeException("005");
        }
        return f.getAbsolutePath();
    }

    private String getTargetFile(String to) {
        // 注意,路径应为文件在工程中的相对路径
        File f = new File("target/" + to);
        return f.getAbsolutePath();
    }

}