From 36f5947cd78a66eeec0b1de51c92100c94b345ad Mon Sep 17 00:00:00 2001
From: baislsl <baislsl666@gmail.com>
Date: Thu, 8 Feb 2018 03:00:55 +0800
Subject: [PATCH] Use the @TestInstance annotation

---
 .../java/com/iluwatar/interpreter/ExpressionTest.java    | 9 +++++++++
 .../com/iluwatar/interpreter/MinusExpressionTest.java    | 3 ++-
 .../com/iluwatar/interpreter/MultiplyExpressionTest.java | 3 ++-
 .../com/iluwatar/interpreter/NumberExpressionTest.java   | 3 ++-
 .../com/iluwatar/interpreter/PlusExpressionTest.java     | 3 ++-
 .../src/test/java/com/iluwatar/observer/HobbitsTest.java | 3 ++-
 .../src/test/java/com/iluwatar/observer/OrcsTest.java    | 3 ++-
 .../java/com/iluwatar/observer/WeatherObserverTest.java  | 6 ++++++
 .../java/com/iluwatar/observer/generic/GHobbitsTest.java | 3 ++-
 .../java/com/iluwatar/observer/generic/ObserverTest.java | 5 +++++
 .../java/com/iluwatar/observer/generic/OrcsTest.java     | 3 ++-
 11 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java
index a3d9f21f2..a9a4f11d8 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java
@@ -23,6 +23,7 @@
 package com.iluwatar.interpreter;
 
 import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
@@ -43,6 +44,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
  * @param <E> Type of Expression
  * @author Jeroen Meulemeester
  */
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public abstract class ExpressionTest<E extends Expression> {
 
   /**
@@ -88,6 +90,13 @@ public abstract class ExpressionTest<E extends Expression> {
     this.factory = factory;
   }
 
+  /**
+   * Create a new set of test entries with the expected result
+   *
+   * @return The list of parameters used during this test
+   */
+  public abstract Stream<Arguments> expressionProvider();
+
   /**
    * Verify if the expression calculates the correct result when calling {@link E#interpret()}
    */
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java
index eab0ea011..276b934c3 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java
@@ -38,7 +38,8 @@ public class MinusExpressionTest extends ExpressionTest<MinusExpression> {
    *
    * @return The list of parameters used during this test
    */
-  public static Stream<Arguments> expressionProvider() {
+  @Override
+  public Stream<Arguments> expressionProvider() {
     return prepareParameters((f, s) -> f - s);
   }
 
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java
index 6e5384f8b..e5f4e61ee 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java
@@ -38,7 +38,8 @@ public class MultiplyExpressionTest extends ExpressionTest<MultiplyExpression> {
    *
    * @return The list of parameters used during this test
    */
-  public static Stream<Arguments> expressionProvider() {
+  @Override
+  public Stream<Arguments> expressionProvider() {
     return prepareParameters((f, s) -> f * s);
   }
 
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java
index 698da52bc..cc7c82e7e 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java
@@ -42,7 +42,8 @@ public class NumberExpressionTest extends ExpressionTest<NumberExpression> {
    *
    * @return The list of parameters used during this test
    */
-  public static Stream<Arguments> expressionProvider() {
+  @Override
+  public Stream<Arguments> expressionProvider() {
     return prepareParameters((f, s) -> f);
   }
 
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java
index ae2423c7a..9687b5399 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java
@@ -38,7 +38,8 @@ public class PlusExpressionTest extends ExpressionTest<PlusExpression> {
    *
    * @return The list of parameters used during this test
    */
-  public static Stream<Arguments> expressionProvider() {
+  @Override
+  public Stream<Arguments> expressionProvider() {
     return prepareParameters((f, s) -> f + s);
   }
 
diff --git a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java
index 21e4acd44..8bad7f59e 100644
--- a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java
+++ b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java
@@ -33,7 +33,8 @@ import java.util.List;
  */
 public class HobbitsTest extends WeatherObserverTest<Hobbits> {
 
-  static Collection<Object[]> dataProvider() {
+  @Override
+  public Collection<Object[]> dataProvider() {
     final List<Object[]> testData = new ArrayList<>();
     testData.add(new Object[]{WeatherType.SUNNY, "The happy hobbits bade in the warm sun."});
     testData.add(new Object[]{WeatherType.RAINY, "The hobbits look for cover from the rain."});
diff --git a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java
index 78667b678..2d82f86a0 100644
--- a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java
+++ b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java
@@ -33,7 +33,8 @@ import java.util.List;
  */
 public class OrcsTest extends WeatherObserverTest<Orcs> {
 
-  static Collection<Object[]> dataProvider() {
+  @Override
+  public Collection<Object[]> dataProvider() {
     final List<Object[]> testData = new ArrayList<>();
     testData.add(new Object[]{WeatherType.SUNNY, "The sun hurts the orcs' eyes."});
     testData.add(new Object[]{WeatherType.RAINY, "The orcs are dripping wet."});
diff --git a/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java b/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java
index da3fad1eb..4bdac3bf4 100644
--- a/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java
+++ b/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java
@@ -23,11 +23,14 @@
 package com.iluwatar.observer;
 
 import com.iluwatar.observer.utils.InMemoryAppender;
+
+import java.util.Collection;
 import java.util.function.Supplier;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
 
@@ -39,6 +42,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
  * @param <O> Type of WeatherObserver
  * @author Jeroen Meulemeester
  */
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public abstract class WeatherObserverTest<O extends WeatherObserver> {
 
   private InMemoryAppender appender;
@@ -67,6 +71,8 @@ public abstract class WeatherObserverTest<O extends WeatherObserver> {
     this.factory = factory;
   }
 
+  public abstract Collection<Object[]> dataProvider();
+
   /**
    * Verify if the weather has the expected influence on the observer
    */
diff --git a/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java b/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java
index 8d86529c7..5c67b03b7 100644
--- a/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java
+++ b/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java
@@ -35,7 +35,8 @@ import java.util.List;
  */
 public class GHobbitsTest extends ObserverTest<GHobbits> {
 
-  static Collection<Object[]> dataProvider() {
+  @Override
+  public Collection<Object[]> dataProvider() {
     final List<Object[]> testData = new ArrayList<>();
     testData.add(new Object[]{WeatherType.SUNNY, "The happy hobbits bade in the warm sun."});
     testData.add(new Object[]{WeatherType.RAINY, "The hobbits look for cover from the rain."});
diff --git a/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java b/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java
index 0feba8ea2..7b0c65ea5 100644
--- a/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java
+++ b/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java
@@ -26,9 +26,11 @@ import com.iluwatar.observer.WeatherType;
 import com.iluwatar.observer.utils.InMemoryAppender;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
 
+import java.util.Collection;
 import java.util.function.Supplier;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -39,6 +41,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
  * @param <O> Type of Observer
  * @author Jeroen Meulemeester
  */
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public abstract class ObserverTest<O extends Observer> {
 
   private InMemoryAppender appender;
@@ -67,6 +70,8 @@ public abstract class ObserverTest<O extends Observer> {
     this.factory = factory;
   }
 
+  public abstract Collection<Object[]> dataProvider();
+
   /**
    * Verify if the weather has the expected influence on the observer
    */
diff --git a/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java b/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java
index 95adf5a28..2ce34dbac 100644
--- a/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java
+++ b/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java
@@ -35,7 +35,8 @@ import java.util.List;
  */
 public class OrcsTest extends ObserverTest<GOrcs> {
 
-  static Collection<Object[]> dataProvider() {
+  @Override
+  public Collection<Object[]> dataProvider() {
     final List<Object[]> testData = new ArrayList<>();
     testData.add(new Object[]{WeatherType.SUNNY, "The sun hurts the orcs' eyes."});
     testData.add(new Object[]{WeatherType.RAINY, "The orcs are dripping wet."});