23 lines
1.3 KiB
Java
23 lines
1.3 KiB
Java
package com.baiyue.common.web;
|
|||
|
|
|
||
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||
|
|
import org.junit.jupiter.api.Test;
|
||
|
|
import static org.assertj.core.api.Assertions.*;
|
||
|
|
|
||
|
|
class EventDeliveryObservationTest {
|
||
|
|
@Test void auditIdentitySupportsTheFormalUuidAndUlidContractWithoutSavingMalformedPayload() {
|
||
|
|
var mapper = new ObjectMapper();
|
||
|
|
for (String id : new String[]{"00000000-0000-4000-8000-000000000019", "01ARZ3NDEKTSV4RRFFQ69G5FAV"}) {
|
||
|
|
assertThat(EventDeliveryObservation.eventId(mapper, "{\"eventId\":\"" + id + "\",\"payload\":\"secret\"}")).isEqualTo(id);
|
||
|
|
}
|
||
|
|
assertThat(EventDeliveryObservation.eventId(mapper, "bad secret JSON")).isNull();
|
||
|
|
assertThat(EventDeliveryObservation.eventId(mapper, "{\"eventId\":\"Bearer secret\"}")).isNull();
|
||
|
|
}
|
||
|
|
@Test void arbitraryExceptionsAndRemoteMessagesCannotLeakIntoAttemptAudit() {
|
||
|
|
var failure = new IllegalStateException("payload={secret} Authorization=secret");
|
||
|
|
assertThat(EventDeliveryObservation.errorCode(failure, false, true)).isEqualTo("DELIVERY_FAILURE");
|
||
|
|
assertThat(EventDeliveryObservation.errorCode(failure, true, true)).isEqualTo("PERMANENT_FAILURE");
|
||
|
|
assertThat(EventDeliveryObservation.errorCode(failure, true, false)).isEqualTo("INVALID_EVENT");
|
||
|
|
}
|
||
|
|
}
|