暂存提交

This commit is contained in:
2026-08-14 15:15:43 +08:00
parent 8540147992
commit 0192380e81
8 changed files with 73 additions and 4 deletions
@@ -0,0 +1,29 @@
package com.baiyue.common.event;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
class EventPayloadCanonicalizerTest {
private final ObjectMapper json = new ObjectMapper();
@Test
void equivalentNumberLexemesHaveTheSameCanonicalFormAndHash() throws Exception {
var scaled = json.readTree("{\"weight\":30.0,\"volume\":0.3150,\"quantity\":3}");
var normalized = json.readTree("{\"quantity\":3.0,\"volume\":0.315,\"weight\":3E+1}");
assertArrayEquals(EventPayloadCanonicalizer.canonicalize(scaled), EventPayloadCanonicalizer.canonicalize(normalized));
assertEquals(EventPayloadHash.sha256(EventPayloadCanonicalizer.canonicalize(scaled)),
EventPayloadHash.sha256(EventPayloadCanonicalizer.canonicalize(normalized)));
}
@Test
void negativeZeroIsZeroAndLegacyHashRemainsAvailable() throws Exception {
var negativeZero = json.readTree("{\"value\":-0.000}");
var zero = json.readTree("{\"value\":0}");
assertArrayEquals(EventPayloadCanonicalizer.canonicalize(negativeZero), EventPayloadCanonicalizer.canonicalize(zero));
assertNotEquals(EventPayloadHash.sha256(EventPayloadCanonicalizer.canonicalize(negativeZero)),
EventPayloadHash.sha256(EventPayloadCanonicalizer.canonicalizeLegacy(negativeZero)));
}
}