From 8b134da54baa7822cc7a24da28ed1164d1d3659e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E5=AE=87=E7=90=A6?= <465645774@qq.com> Date: Tue, 12 Jan 2021 20:11:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=95=B0=E6=8D=AE=E9=A9=B1?= =?UTF-8?q?=E5=8A=A8=E6=96=B9=E6=B3=95=E7=9A=84=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/auxiliary/datadriven/Functions.java | 197 +++++++++++++++--- .../com/auxiliary/tool/data/PresetString.java | 6 +- .../com/auxiliary/tool/data/TableData.java | 24 ++- 3 files changed, 189 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/auxiliary/datadriven/Functions.java b/src/main/java/com/auxiliary/datadriven/Functions.java index 7fc45bf..be0baeb 100644 --- a/src/main/java/com/auxiliary/datadriven/Functions.java +++ b/src/main/java/com/auxiliary/datadriven/Functions.java @@ -1,5 +1,8 @@ package com.auxiliary.datadriven; +import com.auxiliary.tool.data.CarLicecenType; +import com.auxiliary.tool.data.MobleNumberType; +import com.auxiliary.tool.data.PresetString; import com.auxiliary.tool.data.RandomString; import com.auxiliary.tool.data.StringMode; import com.auxiliary.tool.date.Time; @@ -17,8 +20,9 @@ import com.auxiliary.tool.date.Time; */ public class Functions { /** + * 定义生成随机字符串函数 *
- * 定义生成随机字符串函数,用法:
+ * 用法:
* ${rs(字符串种子,生成字符串最短长度,生成字符串最大长度)}
*
@@ -95,29 +99,31 @@ public class Functions { } /** + * 定义对指定时间处理的函数 *
- * 定义对指定时间处理的函数,用法:
- * ${time(时间, 增减时间方式)}
+ * 用法:${time(时间, 增减时间方式)}
*
* 参数解释: - *
- *- * 时间:指定的时间,可传入年、月、日、时、分、秒,允许只传入“年、月、日”,也允许只传入“时、分、秒”。 + *
- * 示例:
- * ${time(2020-06-08 11:20:12, 1d)}——表示生成“2020-06-08 11:20:12”增加1天的时间
- * ${time(2020年06月08日 11时20分12秒, -1d2.3y)}——表示生成“2020年06月08日 11时20分12秒”减少一天并增加2.3年的时间
- * ${time(2020-06-08,1d)}——表示生成“2020-06-08 00:00:00”增加1天的时间
- * ${time(11:20:12, 1h)}——表示生成“当天11:20:12”增加1天的时间
+ * 示例:
+ *
* 注意:计算小数点的日期时,可能存在精度丢失,计算跨度越大,精度丢失越多 @@ -143,24 +149,26 @@ public class Functions { } /** + * 定义对当前时间处理的函数 *
- * 定义对当前时间处理的函数,用法:
- * ${time(增减时间方式)}
+ * 用法:${time(增减时间方式)}
*
* 参数解释: - *
- *- * 增减时间方式:指定对时间进行增减的方式,使用英文单位表示需要操作的内容,包括: + *
- * 示例:
- * ${time(1d)}——表示生成当前时间增加1天的时间
- * ${time(-1d2.3y)}——表示生成当前时间减少一天并增加2.3年的时间
- * ${time()}——表示生成当前时间
+ * 示例:
+ *
* 注意:计算小数点的日期时,可能存在精度丢失,计算跨度越大,精度丢失越多 @@ -192,9 +200,9 @@ public class Functions { } /** + * 定义标记当前元素为空元素 *
- * 定义标记当前元素为空元素,用法:
- * ${ }(花括号内存在一个空格)
+ * 用法:${ }(花括号内存在一个空格)
*
+ * 用法:${idcard}或${身份证} + *
+ * @return {@link DataDriverFunction}类对象 + */ + public static DataDriverFunction randomIdCard() { + String regex = "(idcard)|(身份证)"; + return new DataDriverFunction(regex, text -> PresetString.identityCard()); + } + + /** + * 定义生成随机手机号码函数 + *+ * 用法:${moble.运营商简写或名称}或${手机号码.运营商简写或名称} + *
+ *+ * 参数解释: + *
+ * 示例: + *
+ * 注意: + *
+ * 用法:${name}或${姓名} + *
+ * @return {@link DataDriverFunction}类对象 + */ + public static DataDriverFunction randomName() { + String regex = "(name)|(姓名)"; + return new DataDriverFunction(regex, text -> PresetString.name()); + } + + /** + * 定义生成随机随机车牌号码函数 + *+ * 用法:${car.车牌简写或名称}或${车牌.车牌简写或名称} + *
+ *+ * 参数解释: + *
+ * 示例: + *
+ * 注意:省略车牌简写或名称则默认为生成民用车牌 + *
+ * @return {@link DataDriverFunction}类对象 + */ + public static DataDriverFunction randomCarId() { + String regex = "((car)|(车牌))(.(((ci)|(民用))|((po)|(警车))|((el)|(使馆))|((en)|(新能源))))?"; + return new DataDriverFunction(regex, text -> { + int index = text.indexOf("."); + //若切分得到的字符串数组只有一个元素,则表示字符串不包含后缀,按照默认的参数进行返回 + if (index > -1) { + return PresetString.mobleNumber(MobleNumberType.CHINA_MOBILE); + } else { + //若存在后缀,则按照后缀的参数对手机号码进行返回 + String type = text.toLowerCase().substring(index + 1, text.length()); + switch(type) { + case "en": + case "新能源": + return PresetString.carLicence(CarLicecenType.ENERGY); + case "po": + case "警车": + return PresetString.carLicence(CarLicecenType.POLICE); + case "el": + case "使馆": + return PresetString.carLicence(CarLicecenType.ELCHEE); + case "ci": + case "民用": + default: + return PresetString.carLicence(CarLicecenType.CIVIL); + + } + } + }); + } } diff --git a/src/main/java/com/auxiliary/tool/data/PresetString.java b/src/main/java/com/auxiliary/tool/data/PresetString.java index fcd0679..12dcddb 100644 --- a/src/main/java/com/auxiliary/tool/data/PresetString.java +++ b/src/main/java/com/auxiliary/tool/data/PresetString.java @@ -42,15 +42,15 @@ public class PresetString { /** * 该方法用于生成一个指定样式的随机车牌 * - * @param type + * @param carLicecenType * 车牌的样式 * @return 生成的车牌号字符串 */ - public static String carLicence(CarLicecenType type) { + public static String carLicence(CarLicecenType carLicecenType) { String s = ""; // 判断车牌的样式 - switch (type) { + switch (carLicecenType) { case CIVIL: { s += carLicence(); break; diff --git a/src/main/java/com/auxiliary/tool/data/TableData.java b/src/main/java/com/auxiliary/tool/data/TableData.java index 566778c..316274b 100644 --- a/src/main/java/com/auxiliary/tool/data/TableData.java +++ b/src/main/java/com/auxiliary/tool/data/TableData.java @@ -85,6 +85,10 @@ public class TableData