Skip to content

Commit 5c2870e

Browse files
committed
Test support for serializable records in SerializationUtils
See gh-28798
1 parent 18ce31f commit 5c2870e

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

spring-core/src/test/java/org/springframework/util/SerializationUtilsTests.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.util;
1818

19+
import java.io.NotSerializableException;
20+
import java.io.Serializable;
1921
import java.math.BigInteger;
2022

2123
import org.junit.jupiter.api.Test;
@@ -28,6 +30,7 @@
2830
* Unit tests for {@link SerializationUtils}.
2931
*
3032
* @author Dave Syer
33+
* @author Sam Brannen
3134
* @since 3.0.5
3235
*/
3336
class SerializationUtilsTests {
@@ -43,6 +46,24 @@ void serializeCycleSunnyDay() {
4346
assertThat(SerializationUtils.deserialize(SerializationUtils.serialize("foo"))).isEqualTo("foo");
4447
}
4548

49+
@Test
50+
@SuppressWarnings("deprecation")
51+
void serializeNonSerializableRecord() {
52+
record Person(String firstName, String lastName) {}
53+
Person jane = new Person("Jane", "Doe");
54+
assertThatIllegalArgumentException()
55+
.isThrownBy(() -> SerializationUtils.serialize(jane))
56+
.withCauseExactlyInstanceOf(NotSerializableException.class);
57+
}
58+
59+
@Test
60+
@SuppressWarnings("deprecation")
61+
void serializeAndDeserializeSerializableRecord() {
62+
record Person(String firstName, String lastName) implements Serializable {}
63+
Person jane = new Person("Jane", "Doe");
64+
assertThat(SerializationUtils.deserialize(SerializationUtils.serialize(jane))).isEqualTo(jane);
65+
}
66+
4667
@Test
4768
@SuppressWarnings("deprecation")
4869
void deserializeUndefined() {

0 commit comments

Comments
 (0)