From 5c43d9487304d136f612c3273d5fb09b4756197e Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Tue, 24 Sep 2024 17:49:33 +0200 Subject: [PATCH] Show `@Serial` addition when chained with adding field --- ...erialAnnotationToSerialVersionUIDTest.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/test/java/org/openrewrite/staticanalysis/AddSerialAnnotationToSerialVersionUIDTest.java b/src/test/java/org/openrewrite/staticanalysis/AddSerialAnnotationToSerialVersionUIDTest.java index ea1e39ec5..cb3beed75 100644 --- a/src/test/java/org/openrewrite/staticanalysis/AddSerialAnnotationToSerialVersionUIDTest.java +++ b/src/test/java/org/openrewrite/staticanalysis/AddSerialAnnotationToSerialVersionUIDTest.java @@ -38,7 +38,7 @@ void addSerialAnnotation() { java( """ import java.io.Serializable; - + class Example implements Serializable { private static final long serialVersionUID = 1L; } @@ -46,7 +46,7 @@ class Example implements Serializable { """ import java.io.Serial; import java.io.Serializable; - + class Example implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -57,14 +57,41 @@ class Example implements Serializable { } @Test - void shouldNoopIfAlreadyPresent() { + void shouldAddToNewFieldWhenChained() { rewriteRun( + spec -> spec.recipes( + new AddSerialVersionUidToSerializable(), + new AddSerialAnnotationToSerialVersionUID()), //language=java java( """ import java.io.Serializable; + + class Example implements Serializable { + } + """, + """ import java.io.Serial; + import java.io.Serializable; + + class Example implements Serializable { + @Serial + private static final long serialVersionUID = 1; + } + """ + ) + ); + } + @Test + void shouldNoopIfAlreadyPresent() { + rewriteRun( + //language=java + java( + """ + import java.io.Serializable; + import java.io.Serial; + class Example implements Serializable { String var1 = "first variable"; @Serial @@ -97,7 +124,7 @@ void shouldNotAnnotateOnJava11() { java( """ import java.io.Serializable; - + class Example implements Serializable { private static final long serialVersionUID = 1L; } @@ -114,14 +141,14 @@ void shouldNotAnnotateOtherFields() { java( """ import java.io.Serializable; - + class Example implements Serializable { static final long serialVersionUID = 1L; private final long serialVersionUID = 1L; private static long serialVersionUID = 1L; private static final int serialVersionUID = 1L; private static final long foo = 1L; - + void doSomething() { long serialVersionUID = 1L; } @@ -138,7 +165,7 @@ void shouldAnnotatedFieldsInInnerClasses() { java( """ import java.io.Serializable; - + class Outer implements Serializable { private static final long serialVersionUID = 1; static class Inner implements Serializable { @@ -149,7 +176,7 @@ static class Inner implements Serializable { """ import java.io.Serial; import java.io.Serializable; - + class Outer implements Serializable { @Serial private static final long serialVersionUID = 1;