From b7c8c8668b53637dcb998d7fcd4487db23368269 Mon Sep 17 00:00:00 2001 From: Michail Plushnikov Date: Fri, 25 Mar 2016 10:57:28 +0100 Subject: [PATCH] added automatic tests for constructor with generics --- .../lombok/tests/ConstructorTest.java | 8 ++ .../de/plushnikov/constructor/Issue136.java | 30 ------- .../de/plushnikov/constructor/Issue157.java | 33 -------- ...RequiredArgsConstructorWithGeneric136.java | 33 ++++++++ ...RequiredArgsConstructorWithGeneric157.java | 31 +++++++ .../DelegateGenericInterfaceIssue88.java | 81 +++++++++---------- .../delegate/issue88/MyWorkerTest.java | 39 --------- .../delegate/issue88/visitor/Visitor.java | 5 -- .../issue88/visitor/impl/VisitorImpl.java | 13 --- .../delegate/issue88/worker/MyWorker.java | 7 -- ...RequiredArgsConstructorWithGeneric136.java | 43 ++++++++++ ...RequiredArgsConstructorWithGeneric157.java | 34 ++++++++ ...RequiredArgsConstructorWithGeneric136.java | 31 +++++++ ...RequiredArgsConstructorWithGeneric157.java | 29 +++++++ 14 files changed, 249 insertions(+), 168 deletions(-) delete mode 100644 test-manual/src/main/java/de/plushnikov/constructor/Issue136.java delete mode 100644 test-manual/src/main/java/de/plushnikov/constructor/Issue157.java create mode 100644 test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric136.java create mode 100644 test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric157.java delete mode 100644 test-manual/src/main/java/de/plushnikov/delegate/issue88/MyWorkerTest.java delete mode 100644 test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/Visitor.java delete mode 100644 test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/impl/VisitorImpl.java delete mode 100644 test-manual/src/main/java/de/plushnikov/delegate/issue88/worker/MyWorker.java create mode 100644 testData/after/RequiredArgsConstructorWithGeneric136.java create mode 100644 testData/after/RequiredArgsConstructorWithGeneric157.java create mode 100644 testData/before/RequiredArgsConstructorWithGeneric136.java create mode 100644 testData/before/RequiredArgsConstructorWithGeneric157.java diff --git a/src/test/java/de/plushnikov/lombok/tests/ConstructorTest.java b/src/test/java/de/plushnikov/lombok/tests/ConstructorTest.java index 0b4df328e..6eeed07d5 100644 --- a/src/test/java/de/plushnikov/lombok/tests/ConstructorTest.java +++ b/src/test/java/de/plushnikov/lombok/tests/ConstructorTest.java @@ -24,4 +24,12 @@ public void testNoArgsConstructorForced() throws IOException { public void testConstructorEnum() throws IOException { doTest(); } + + public void testRequiredArgsConstructorWithGeneric136() throws IOException { + doTest(); + } + + public void testRequiredArgsConstructorWithGeneric157() throws IOException { + doTest(); + } } diff --git a/test-manual/src/main/java/de/plushnikov/constructor/Issue136.java b/test-manual/src/main/java/de/plushnikov/constructor/Issue136.java deleted file mode 100644 index 60eb99655..000000000 --- a/test-manual/src/main/java/de/plushnikov/constructor/Issue136.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.plushnikov.constructor; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -public class Issue136 { - - @Getter - @RequiredArgsConstructor(staticName = "of2") - public static class Foo { - private final T object; - private final int i; - - public static Foo of(T object, int i) { - return new Foo(object, i); - } - } - - private Foo createFoo(D t, int i) { - return new Foo<>(t, i); - } - - public static void main(String[] args) { - Foo stringFoo = new Foo<>("", 2); - - Foo foo1 = Foo.of("String2", 123); - Foo foo2 = Foo.of2("String2", 4423); - - } -} \ No newline at end of file diff --git a/test-manual/src/main/java/de/plushnikov/constructor/Issue157.java b/test-manual/src/main/java/de/plushnikov/constructor/Issue157.java deleted file mode 100644 index 15b2c9994..000000000 --- a/test-manual/src/main/java/de/plushnikov/constructor/Issue157.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.plushnikov.constructor; - -import lombok.RequiredArgsConstructor; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.UnknownFormatConversionException; - -public class Issue157 { - @RequiredArgsConstructor(staticName = "of") - public static class Foo { - private final Map bar; - - public Map buildBar() { - // ... - return bar; - } - } - - public static void main(String[] args) { - Foo foo = new Foo<>(new HashMap()); - System.out.println(foo); - - HashMap hashMap = new HashMap<>(); - Foo myFoo = Foo.of(hashMap); - Map bar = myFoo.buildBar(); - System.out.println(bar); - - Foo exceptionFoo = Foo.of(new HashMap()); - System.out.println(exceptionFoo.buildBar()); - } -} \ No newline at end of file diff --git a/test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric136.java b/test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric136.java new file mode 100644 index 000000000..ed3f058bb --- /dev/null +++ b/test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric136.java @@ -0,0 +1,33 @@ +package de.plushnikov.constructor; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +public class RequiredArgsConstructorWithGeneric136 { + + @Getter + @RequiredArgsConstructor(staticName = "of2") + private static class Foo { + private final T object; + private final int i; + + static Foo of(T object, int i) { + return new Foo(object, i); + } + } + + private Foo createFoo(D t, int i) { + return new Foo<>(t, i); + } + + public static void main(String[] args) { + Foo stringFoo = new Foo<>("", 2); + + Foo foo1 = Foo.of("String2", 123); + Foo foo2 = Foo.of2("String2", 4423); + + System.out.println(stringFoo); + System.out.println(foo1); + System.out.println(foo2); + } +} \ No newline at end of file diff --git a/test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric157.java b/test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric157.java new file mode 100644 index 000000000..27bc19ef4 --- /dev/null +++ b/test-manual/src/main/java/de/plushnikov/constructor/RequiredArgsConstructorWithGeneric157.java @@ -0,0 +1,31 @@ +package de.plushnikov.constructor; + +import lombok.RequiredArgsConstructor; + +import java.util.HashMap; +import java.util.Map; + +public class RequiredArgsConstructorWithGeneric157 { + + @RequiredArgsConstructor(staticName = "of") + private static class Foo { + private final Map bar; + + Map buildBar() { + return bar; + } + } + + public static void main(String[] args) { + Foo foo = new Foo<>(new HashMap()); + System.out.println(foo); + + HashMap hashMap = new HashMap<>(); + Foo myFoo = Foo.of(hashMap); + Map bar = myFoo.buildBar(); + System.out.println(bar); + + Foo exceptionFoo = Foo.of(new HashMap()); + System.out.println(exceptionFoo.buildBar()); + } +} \ No newline at end of file diff --git a/test-manual/src/main/java/de/plushnikov/delegate/issue88/DelegateGenericInterfaceIssue88.java b/test-manual/src/main/java/de/plushnikov/delegate/issue88/DelegateGenericInterfaceIssue88.java index 0bb8f6be5..cea5516c3 100644 --- a/test-manual/src/main/java/de/plushnikov/delegate/issue88/DelegateGenericInterfaceIssue88.java +++ b/test-manual/src/main/java/de/plushnikov/delegate/issue88/DelegateGenericInterfaceIssue88.java @@ -1,53 +1,52 @@ package de.plushnikov.delegate.issue88; +import lombok.experimental.Delegate; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertNotNull; public class DelegateGenericInterfaceIssue88 { - public T visit(T object) { - return this.visitor.visit(object); - } - - interface Visitor88 { - T visit(T object); - } - - private static class Visitor88Impl implements Visitor88 { - @Override - public T visit(T object) { - System.out.println("Lets see what we got: " + object.getClass()); - return object; + + interface Visitor88 { + T visit(T object); + } + + private static class Visitor88Impl implements Visitor88 { + @Override + public T visit(T object) { + System.out.println("Lets see what we got: " + object.getClass()); + return object; + } + } + + private static class MyWorker88 { + String doWork() { + return "The Work Was done"; + } + } + + @Delegate + private Visitor88 visitor = new Visitor88Impl(); + + private MyWorker88 myWorker; + + @Before + public void setUp() throws Exception { + myWorker = new MyWorker88(); + } + + @Test + public void testDoWorkWithDelegation() throws Exception { + String work = visit(myWorker).doWork(); + assertNotNull(work); + System.out.println("testDoWorkWithDelegation - Work:" + work); } - } - private static class MyWorker88 { - String doWork() { - return "The Work Was done"; + @Test + public void testDoWorkWithoutDelegation() throws Exception { + String work = visitor.visit(myWorker).doWork(); + assertNotNull(work); + System.out.println("testDoWorkWithoutDelegation - Work: " + work); } - } - - private Visitor88 visitor = new Visitor88Impl(); - - private MyWorker88 myWorker; - - @Before - public void setUp() throws Exception { - myWorker = new MyWorker88(); - } - - @Test - public void testDoWorkWithDelegation() throws Exception { - String work = visit(myWorker).doWork(); - assertNotNull(work); - System.out.println("testDoWorkWithDelegation - Work:" + work); - } - - @Test - public void testDoWorkWithoutDelegation() throws Exception { - String work = visitor.visit(myWorker).doWork(); - assertNotNull(work); - System.out.println("testDoWorkWithoutDelegation - Work: " + work); - } } diff --git a/test-manual/src/main/java/de/plushnikov/delegate/issue88/MyWorkerTest.java b/test-manual/src/main/java/de/plushnikov/delegate/issue88/MyWorkerTest.java deleted file mode 100644 index d1b0c5e3b..000000000 --- a/test-manual/src/main/java/de/plushnikov/delegate/issue88/MyWorkerTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.plushnikov.delegate.issue88; - -import de.plushnikov.delegate.issue88.visitor.Visitor; -import de.plushnikov.delegate.issue88.visitor.impl.VisitorImpl; -import de.plushnikov.delegate.issue88.worker.MyWorker; -import lombok.experimental.Delegate; -import lombok.extern.slf4j.Slf4j; -import org.junit.Before; -import org.junit.Test; - -import static org.junit.Assert.assertNotNull; - -@Slf4j -public class MyWorkerTest { - - @Delegate - private Visitor visitor = new VisitorImpl(); - - private MyWorker myWorker; - - @Before - public void setUp() throws Exception { - myWorker = new MyWorker(); - } - - @Test - public void testDoWorkWithDelegation() throws Exception { - String work = visit(myWorker).doWork(); - assertNotNull(work); - log.debug("testDoWorkWithDelegation - Work: {}", work); - } - - @Test - public void testDoWorkWithoutDelegation() throws Exception { - String work = visitor.visit(myWorker).doWork(); - assertNotNull(work); - log.debug("testDoWorkWithoutDelegation - Work: {}", work); - } -} \ No newline at end of file diff --git a/test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/Visitor.java b/test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/Visitor.java deleted file mode 100644 index 392cf267e..000000000 --- a/test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/Visitor.java +++ /dev/null @@ -1,5 +0,0 @@ -package de.plushnikov.delegate.issue88.visitor; - -public interface Visitor { - T visit(T object); -} \ No newline at end of file diff --git a/test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/impl/VisitorImpl.java b/test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/impl/VisitorImpl.java deleted file mode 100644 index 470f4b36c..000000000 --- a/test-manual/src/main/java/de/plushnikov/delegate/issue88/visitor/impl/VisitorImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.plushnikov.delegate.issue88.visitor.impl; - -import de.plushnikov.delegate.issue88.visitor.Visitor; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -public class VisitorImpl implements Visitor { - @Override - public T visit(T object) { - log.debug("Lets see what we got: {}", object.getClass()); - return object; - } -} \ No newline at end of file diff --git a/test-manual/src/main/java/de/plushnikov/delegate/issue88/worker/MyWorker.java b/test-manual/src/main/java/de/plushnikov/delegate/issue88/worker/MyWorker.java deleted file mode 100644 index 9aaf818e3..000000000 --- a/test-manual/src/main/java/de/plushnikov/delegate/issue88/worker/MyWorker.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.plushnikov.delegate.issue88.worker; - -public class MyWorker { - public String doWork() { - return "The Work Was done"; - } -} \ No newline at end of file diff --git a/testData/after/RequiredArgsConstructorWithGeneric136.java b/testData/after/RequiredArgsConstructorWithGeneric136.java new file mode 100644 index 000000000..a81f05f0a --- /dev/null +++ b/testData/after/RequiredArgsConstructorWithGeneric136.java @@ -0,0 +1,43 @@ +public class RequiredArgsConstructorWithGeneric136 { + + private static class Foo { + private final T object; + private final int i; + + private Foo(T object, int i) { + this.object = object; + this.i = i; + } + + static Foo of(T object, int i) { + return new Foo(object, i); + } + + public static Foo of2(T object, int i) { + return new Foo(object, i); + } + + public T getObject() { + return this.object; + } + + public int getI() { + return this.i; + } + } + + private Foo createFoo(D t, int i) { + return new Foo<>(t, i); + } + + public static void main(String[] args) { + Foo stringFoo = new Foo<>("", 2); + + Foo foo1 = Foo.of("String2", 123); + Foo foo2 = Foo.of2("String2", 4423); + + System.out.println(stringFoo); + System.out.println(foo1); + System.out.println(foo2); + } +} \ No newline at end of file diff --git a/testData/after/RequiredArgsConstructorWithGeneric157.java b/testData/after/RequiredArgsConstructorWithGeneric157.java new file mode 100644 index 000000000..21b5dd963 --- /dev/null +++ b/testData/after/RequiredArgsConstructorWithGeneric157.java @@ -0,0 +1,34 @@ +import java.util.HashMap; +import java.util.Map; + +public class RequiredArgsConstructorWithGeneric157 { + + private static class Foo { + private final Map bar; + + private Foo(Map bar) { + this.bar = bar; + } + + public static Foo of(Map bar) { + return new Foo(bar); + } + + Map buildBar() { + return bar; + } + } + + public static void main(String[] args) { + Foo foo = new Foo<>(new HashMap()); + System.out.println(foo); + + HashMap hashMap = new HashMap<>(); + Foo myFoo = Foo.of(hashMap); + Map bar = myFoo.buildBar(); + System.out.println(bar); + + Foo exceptionFoo = Foo.of(new HashMap()); + System.out.println(exceptionFoo.buildBar()); + } +} \ No newline at end of file diff --git a/testData/before/RequiredArgsConstructorWithGeneric136.java b/testData/before/RequiredArgsConstructorWithGeneric136.java new file mode 100644 index 000000000..35d825e09 --- /dev/null +++ b/testData/before/RequiredArgsConstructorWithGeneric136.java @@ -0,0 +1,31 @@ +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +public class RequiredArgsConstructorWithGeneric136 { + + @Getter + @RequiredArgsConstructor(staticName = "of2") + private static class Foo { + private final T object; + private final int i; + + static Foo of(T object, int i) { + return new Foo(object, i); + } + } + + private Foo createFoo(D t, int i) { + return new Foo<>(t, i); + } + + public static void main(String[] args) { + Foo stringFoo = new Foo<>("", 2); + + Foo foo1 = Foo.of("String2", 123); + Foo foo2 = Foo.of2("String2", 4423); + + System.out.println(stringFoo); + System.out.println(foo1); + System.out.println(foo2); + } +} \ No newline at end of file diff --git a/testData/before/RequiredArgsConstructorWithGeneric157.java b/testData/before/RequiredArgsConstructorWithGeneric157.java new file mode 100644 index 000000000..5c91fce23 --- /dev/null +++ b/testData/before/RequiredArgsConstructorWithGeneric157.java @@ -0,0 +1,29 @@ +import lombok.RequiredArgsConstructor; + +import java.util.HashMap; +import java.util.Map; + +public class RequiredArgsConstructorWithGeneric157 { + + @RequiredArgsConstructor(staticName = "of") + private static class Foo { + private final Map bar; + + Map buildBar() { + return bar; + } + } + + public static void main(String[] args) { + Foo foo = new Foo<>(new HashMap()); + System.out.println(foo); + + HashMap hashMap = new HashMap<>(); + Foo myFoo = Foo.of(hashMap); + Map bar = myFoo.buildBar(); + System.out.println(bar); + + Foo exceptionFoo = Foo.of(new HashMap()); + System.out.println(exceptionFoo.buildBar()); + } +} \ No newline at end of file