From 5c2870ebd973957dd67405fc747b8ec0eab80667 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 12 Jul 2022 15:35:13 +0200 Subject: [PATCH] Test support for serializable records in SerializationUtils See gh-28798 --- .../util/SerializationUtilsTests.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/spring-core/src/test/java/org/springframework/util/SerializationUtilsTests.java b/spring-core/src/test/java/org/springframework/util/SerializationUtilsTests.java index 8d892ebf47..12db0b1476 100644 --- a/spring-core/src/test/java/org/springframework/util/SerializationUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/SerializationUtilsTests.java @@ -16,6 +16,8 @@ package org.springframework.util; +import java.io.NotSerializableException; +import java.io.Serializable; import java.math.BigInteger; import org.junit.jupiter.api.Test; @@ -28,6 +30,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException; * Unit tests for {@link SerializationUtils}. * * @author Dave Syer + * @author Sam Brannen * @since 3.0.5 */ class SerializationUtilsTests { @@ -43,6 +46,24 @@ class SerializationUtilsTests { assertThat(SerializationUtils.deserialize(SerializationUtils.serialize("foo"))).isEqualTo("foo"); } + @Test + @SuppressWarnings("deprecation") + void serializeNonSerializableRecord() { + record Person(String firstName, String lastName) {} + Person jane = new Person("Jane", "Doe"); + assertThatIllegalArgumentException() + .isThrownBy(() -> SerializationUtils.serialize(jane)) + .withCauseExactlyInstanceOf(NotSerializableException.class); + } + + @Test + @SuppressWarnings("deprecation") + void serializeAndDeserializeSerializableRecord() { + record Person(String firstName, String lastName) implements Serializable {} + Person jane = new Person("Jane", "Doe"); + assertThat(SerializationUtils.deserialize(SerializationUtils.serialize(jane))).isEqualTo(jane); + } + @Test @SuppressWarnings("deprecation") void deserializeUndefined() {