feat: int/float/decimal精度优化
All checks were successful
序列化结构检查 / serialization-schema-check (push) Has been skipped
All checks were successful
序列化结构检查 / serialization-schema-check (push) Has been skipped
This commit is contained in:
@@ -80,4 +80,31 @@ class SkeletonJsonRendererTest {
|
||||
"截断后仍应保留改动相关字段: " + truncated);
|
||||
assertEquals(true, truncated.length() >= 10);
|
||||
}
|
||||
|
||||
@Test
|
||||
void numberPlaceholdersDistinguishIntegerFloatAndBigDecimal() {
|
||||
TypeSchema schema = new TypeSchema("MoneyVo");
|
||||
schema.add(new FieldSchema("count", JsonType.NUMBER, "Integer"));
|
||||
schema.add(new FieldSchema("rate", JsonType.NUMBER, "Double"));
|
||||
schema.add(new FieldSchema("amount", JsonType.NUMBER, "BigDecimal"));
|
||||
schema.add(new FieldSchema("score", JsonType.NUMBER, "Float"));
|
||||
|
||||
String json = new SkeletonJsonRenderer().render(schema);
|
||||
assertTrue(json.contains("\"count\":0"), json);
|
||||
assertTrue(json.contains("\"rate\":0.0"), json);
|
||||
assertTrue(json.contains("\"amount\":0.00"), json);
|
||||
assertTrue(json.contains("\"score\":0.0"), json);
|
||||
}
|
||||
|
||||
@Test
|
||||
void integerToBigDecimalSkeletonsLookDifferent() {
|
||||
TypeSchema oldS = new TypeSchema("A");
|
||||
oldS.add(new FieldSchema("amount", JsonType.NUMBER, "Integer"));
|
||||
TypeSchema newS = new TypeSchema("A");
|
||||
newS.add(new FieldSchema("amount", JsonType.NUMBER, "BigDecimal"));
|
||||
|
||||
SkeletonJsonRenderer renderer = new SkeletonJsonRenderer();
|
||||
assertEquals("{\"amount\":0}", renderer.render(oldS));
|
||||
assertEquals("{\"amount\":0.00}", renderer.render(newS));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user