Skip to content

Commit a2135bf

Browse files
author
Pritham Marupaka
committed
Add test for re-serialized error parameters
1 parent 51cc2cd commit a2135bf

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

conjure-java-core/src/test/java/com/palantir/conjure/java/UndertowServiceEteTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@
2828
import com.google.common.util.concurrent.UncheckedExecutionException;
2929
import com.palantir.conjure.java.api.errors.RemoteException;
3030
import com.palantir.conjure.java.api.errors.SerializableError;
31+
import com.palantir.conjure.java.api.errors.SerializableErrorProvider;
3132
import com.palantir.conjure.java.client.jaxrs.JaxRsClient;
3233
import com.palantir.conjure.java.lib.SafeLong;
3334
import com.palantir.conjure.java.okhttp.HostMetricsRegistry;
3435
import com.palantir.conjure.java.serialization.ObjectMappers;
3536
import com.palantir.conjure.java.undertow.runtime.ConjureHandler;
3637
import com.palantir.dialogue.BinaryRequestBody;
3738
import com.palantir.dialogue.clients.DialogueClients;
39+
import com.palantir.logsafe.exceptions.SafeUncheckedIoException;
3840
import com.palantir.ri.ResourceIdentifier;
3941
import com.palantir.tokens.auth.AuthHeader;
4042
import dialogue.com.palantir.product.EteBinaryServiceBlocking;
@@ -555,12 +557,24 @@ public void testListOfNull() {
555557

556558
@Test
557559
public void testErrorParametersSerializedAsJson() {
560+
ObjectMapper objectMapper = ObjectMappers.newClientObjectMapper();
558561
try {
559562
exceptionThrowingClient.jsonErrorsHeader(AuthHeader.valueOf("authHeader"), "JSON");
560563
} catch (RemoteException e) {
561564
assertThat(e.getError().parameters())
562565
.containsExactlyInAnyOrderEntriesOf(
563566
Map.of("serviceName", "my-service-string", "serviceDef", SimpleEnum.VALUE.toString()));
567+
// Assert that error parameters can be re-serialized as JSON.
568+
assertThat(e).isInstanceOfSatisfying(SerializableErrorProvider.class, errorProvider -> {
569+
try {
570+
String serialized = objectMapper.writeValueAsString(
571+
errorProvider.error().parameterMap());
572+
assertThat(serialized)
573+
.isEqualTo("{\"serviceName\":\"my-service-string\",\"serviceDef\":\"VALUE\"}");
574+
} catch (IOException exception) {
575+
throw new SafeUncheckedIoException("Failed to serialize parameters", exception);
576+
}
577+
});
564578
}
565579

566580
try {

0 commit comments

Comments
 (0)