Files
baiyue-firstleg/common-web/src/test/java/com/baiyue/common/web/EventDeliveryObservationTest.java
T

32 lines
2.0 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 malformedSuccessResponseIsNotReportedAsAnHttpSuccess() {
var request = feign.Request.create(feign.Request.HttpMethod.POST, "http://consumer.invalid/events",
java.util.Map.of(), new byte[0], java.nio.charset.StandardCharsets.UTF_8, new feign.RequestTemplate());
var failure = new feign.codec.DecodeException(200, "secret remote payload", request);
assertThat(EventDeliveryObservation.errorCode(failure, false, true)).isEqualTo("INVALID_RESPONSE");
assertThat(EventDeliveryFailure.diagnostic(failure, "token"))
.contains("Invalid consumer response contract").doesNotContain("secret", "HTTP 200");
assertThat(EventDeliveryFailure.isPermanent(failure)).isFalse();
}
@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");
}
}