diff --git a/pom.xml b/pom.xml
index 2bfbf68f9..279d414e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,12 @@
1.16.20
provided
+
+ org.mongodb
+ mongo-java-driver
+ 3.5.0
+ provided
+
junit
junit
diff --git a/src/main/java/com/github/jsonzou/jmockdata/MockConfig.java b/src/main/java/com/github/jsonzou/jmockdata/MockConfig.java
index 7f66c426a..2c07e5865 100644
--- a/src/main/java/com/github/jsonzou/jmockdata/MockConfig.java
+++ b/src/main/java/com/github/jsonzou/jmockdata/MockConfig.java
@@ -15,6 +15,7 @@
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*;
+import org.bson.types.Decimal128;
/**
* 模拟数据配置类
@@ -31,6 +32,7 @@ public class MockConfig {
private static final DoubleMocker DOUBLE_MOCKER = new DoubleMocker();
private static final BigIntegerMocker BIG_INTEGER_MOCKER = new BigIntegerMocker();
private static final BigDecimalMocker BIG_DECIMAL_MOCKER = new BigDecimalMocker();
+ private static final Decimal128Mocker DECIMAL_128_MOCKER = new Decimal128Mocker();
private static final StringMocker STRING_MOCKER = new StringMocker();
private static final DateMocker DATE_MOCKER = new DateMocker();
private static final LocalDateTimeMocker LOCAL_DATE_TIME_MOCKER = new LocalDateTimeMocker();
@@ -90,6 +92,7 @@ public MockConfig() {
registerMocker(DOUBLE_MOCKER, double.class, Double.class);
registerMocker(BIG_INTEGER_MOCKER, BigInteger.class);
registerMocker(BIG_DECIMAL_MOCKER, BigDecimal.class);
+ registerMocker(DECIMAL_128_MOCKER, Decimal128.class);
registerMocker(STRING_MOCKER, String.class);
registerMocker(DATE_MOCKER, Date.class);
registerMocker(LOCAL_DATE_TIME_MOCKER, LocalDateTime.class);
diff --git a/src/main/java/com/github/jsonzou/jmockdata/mocker/Decimal128Mocker.java b/src/main/java/com/github/jsonzou/jmockdata/mocker/Decimal128Mocker.java
new file mode 100644
index 000000000..178d9048e
--- /dev/null
+++ b/src/main/java/com/github/jsonzou/jmockdata/mocker/Decimal128Mocker.java
@@ -0,0 +1,22 @@
+package com.github.jsonzou.jmockdata.mocker;
+
+import com.github.jsonzou.jmockdata.DataConfig;
+import com.github.jsonzou.jmockdata.Mocker;
+import java.math.BigDecimal;
+import org.bson.types.Decimal128;
+
+/**
+ * Decimal128对象模拟器
+ */
+public class Decimal128Mocker implements Mocker {
+
+ @Override
+ public Decimal128 mock(DataConfig mockConfig) {
+ return new Decimal128(
+ BigDecimal.valueOf(
+ mockConfig.globalConfig().getMocker(Double.class).mock(mockConfig)
+ )
+ );
+ }
+
+}
diff --git a/src/test/java/com/github/jsonzou/jmockdata/JMockDataTest.java b/src/test/java/com/github/jsonzou/jmockdata/JMockDataTest.java
index 3741dda25..9279360ae 100644
--- a/src/test/java/com/github/jsonzou/jmockdata/JMockDataTest.java
+++ b/src/test/java/com/github/jsonzou/jmockdata/JMockDataTest.java
@@ -6,6 +6,7 @@
import com.github.jsonzou.jmockdata.bean.circular.AXB;
import com.github.jsonzou.jmockdata.bean.enums.DayEnum;
import com.github.jsonzou.jmockdata.bean.enums.ErrorEnum;
+import org.bson.types.Decimal128;
import org.junit.Test;
import java.lang.reflect.Field;
@@ -42,6 +43,8 @@ public void testBasic() {
assertNotNull(str);
DayEnum dayEnum = JMockData.mock(DayEnum.class);
assertNotNull(dayEnum);
+ Decimal128 decimal128 = JMockData.mock(Decimal128.class);
+ assertNotNull(decimal128);
try {
JMockData.mock(ErrorEnum.class);