This is an automated email from the ASF dual-hosted git repository.

dwysakowicz pushed a commit to branch release-1.10
in repository https://gitbox.apache.org/repos/asf/flink.git

commit f4c25df707571f60724c8516dfb7a1055b0fa63c
Author: Dawid Wysakowicz <dwysakow...@apache.org>
AuthorDate: Tue Feb 4 14:36:33 2020 +0100

    [FLINK-15706][table-planner-blink] Reorder and split into sections classes 
in aggfunctions tests.
---
 .../FirstValueAggFunctionWithOrderTest.java        | 192 ++++++++++----------
 .../FirstValueAggFunctionWithoutOrderTest.java     | 138 +++++++-------
 ...stValueWithRetractAggFunctionWithOrderTest.java | 201 ++++++++++----------
 ...alueWithRetractAggFunctionWithoutOrderTest.java | 151 ++++++++-------
 .../LastValueAggFunctionWithOrderTest.java         | 190 +++++++++----------
 .../LastValueAggFunctionWithoutOrderTest.java      | 138 +++++++-------
 ...stValueWithRetractAggFunctionWithOrderTest.java | 202 +++++++++++----------
 ...alueWithRetractAggFunctionWithoutOrderTest.java | 151 ++++++++-------
 .../ListAggWithRetractAggFunctionTest.java         |   2 +-
 .../ListAggWsWithRetractAggFunctionTest.java       |   2 +-
 .../MaxWithRetractAggFunctionTest.java             | 177 +++++++++---------
 .../MinWithRetractAggFunctionTest.java             | 177 +++++++++---------
 12 files changed, 922 insertions(+), 799 deletions(-)

diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithOrderTest.java
index 658541c..23de255 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithOrderTest.java
@@ -44,93 +44,20 @@ import java.util.List;
  * This class tests `accumulate` method with order argument.
  */
 @RunWith(Enclosed.class)
-public class FirstValueAggFunctionWithOrderTest {
+public final class FirstValueAggFunctionWithOrderTest {
 
-       /**
-        * The base test class for FirstValueAggFunction with order.
-        */
-       public abstract static class FirstValueAggFunctionWithOrderTestBase<T>
-                       extends FirstLastValueAggFunctionWithOrderTestBase<T> {
-
-       }
-
-       /**
-        * Test FirstValueAggFunction for number type.
-        */
-       public abstract static class 
NumberFirstValueAggFunctionWithOrderTestBase<T>
-                       extends FirstValueAggFunctionWithOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null,
-                                                       getValue("3"),
-                                                       getValue("2"),
-                                                       getValue("-99")
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("5")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<List<Long>> getInputOrderSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       10L,
-                                                       2L,
-                                                       5L,
-                                                       6L,
-                                                       11L,
-                                                       3L,
-                                                       7L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       8L,
-                                                       6L,
-                                                       9L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       6L,
-                                                       4L,
-                                                       3L
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("3"),
-                                       null,
-                                       getValue("5")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - FirstLastValueAggFunctionWithOrderTestBase -> tests specific for 
FirstValue and LastValue
+       //  - AggFunctionTestBase -> tests that apply to all aggregate functions
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteFirstValueAggFunction.
         */
-       public static class ByteFirstValueAggFunctionWithOrderTest
+       public static final class ByteFirstValueAggFunctionWithOrderTest
                        extends 
NumberFirstValueAggFunctionWithOrderTestBase<Byte> {
 
                @Override
@@ -147,7 +74,7 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for ShortFirstValueAggFunction.
         */
-       public static class ShortFirstValueAggFunctionWithOrderTest
+       public static final class ShortFirstValueAggFunctionWithOrderTest
                        extends 
NumberFirstValueAggFunctionWithOrderTestBase<Short> {
 
                @Override
@@ -164,7 +91,7 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for IntFirstValueAggFunction.
         */
-       public static class IntFirstValueAggFunctionWithOrderTest
+       public static final class IntFirstValueAggFunctionWithOrderTest
                        extends 
NumberFirstValueAggFunctionWithOrderTestBase<Integer> {
 
                @Override
@@ -181,7 +108,7 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for LongFirstValueAggFunction.
         */
-       public static class LongFirstValueAggFunctionWithOrderTest
+       public static final class LongFirstValueAggFunctionWithOrderTest
                        extends 
NumberFirstValueAggFunctionWithOrderTestBase<Long> {
 
                @Override
@@ -198,7 +125,7 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for FloatFirstValueAggFunction.
         */
-       public static class FloatFirstValueAggFunctionWithOrderTest
+       public static final class FloatFirstValueAggFunctionWithOrderTest
                        extends 
NumberFirstValueAggFunctionWithOrderTestBase<Float> {
 
                @Override
@@ -215,7 +142,7 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for DoubleFirstValueAggFunction.
         */
-       public static class DoubleFirstValueAggFunctionWithOrderTest
+       public static final class DoubleFirstValueAggFunctionWithOrderTest
                        extends 
NumberFirstValueAggFunctionWithOrderTestBase<Double> {
 
                @Override
@@ -232,8 +159,8 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for BooleanFirstValueAggFunction.
         */
-       public static class BooleanFirstValueAggFunctionWithOrderTest
-                       extends FirstValueAggFunctionWithOrderTestBase<Boolean> 
{
+       public static final class BooleanFirstValueAggFunctionWithOrderTest
+                       extends 
FirstLastValueAggFunctionWithOrderTestBase<Boolean> {
 
                @Override
                protected List<List<Boolean>> getInputValueSets() {
@@ -322,8 +249,8 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for DecimalFirstValueAggFunction.
         */
-       public static class DecimalFirstValueAggFunctionWithOrderTest
-                       extends FirstValueAggFunctionWithOrderTestBase<Decimal> 
{
+       public static final class DecimalFirstValueAggFunctionWithOrderTest
+                       extends 
FirstLastValueAggFunctionWithOrderTestBase<Decimal> {
 
                private int precision = 20;
                private int scale = 6;
@@ -402,8 +329,8 @@ public class FirstValueAggFunctionWithOrderTest {
        /**
         * Test for StringFirstValueAggFunction.
         */
-       public static class StringFirstValueAggFunctionWithOrderTest
-                       extends 
FirstValueAggFunctionWithOrderTestBase<BinaryString> {
+       public static final class StringFirstValueAggFunctionWithOrderTest
+                       extends 
FirstLastValueAggFunctionWithOrderTestBase<BinaryString> {
 
                @Override
                protected List<List<BinaryString>> getInputValueSets() {
@@ -476,4 +403,83 @@ public class FirstValueAggFunctionWithOrderTest {
                        return new StringFirstValueAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide:
+       //  - common inputs
+       // for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * Test FirstValueAggFunction for number type.
+        */
+       public abstract static class 
NumberFirstValueAggFunctionWithOrderTestBase<T>
+               extends FirstLastValueAggFunctionWithOrderTestBase<T> {
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null,
+                                       getValue("3"),
+                                       getValue("2"),
+                                       getValue("-99")
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("5")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<List<Long>> getInputOrderSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       10L,
+                                       2L,
+                                       5L,
+                                       6L,
+                                       11L,
+                                       3L,
+                                       7L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       8L,
+                                       6L,
+                                       9L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       6L,
+                                       4L,
+                                       3L
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("3"),
+                               null,
+                               getValue("5")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithoutOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithoutOrderTest.java
index 62be99c..8348251 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithoutOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueAggFunctionWithoutOrderTest.java
@@ -44,65 +44,19 @@ import java.util.List;
  * This class tests `accumulate` method without order argument.
  */
 @RunWith(Enclosed.class)
-public class FirstValueAggFunctionWithoutOrderTest {
+public final class FirstValueAggFunctionWithoutOrderTest {
 
-       /**
-        * The base test class for FirstValueAggFunction without order.
-        */
-       public abstract static class 
FirstValueAggFunctionWithoutOrderTestBase<T>
-                       extends AggFunctionTestBase<T, GenericRow> {
-               @Override
-               protected Class<?> getAccClass() {
-                       return GenericRow.class;
-               }
-       }
-
-       /**
-        * Test FirstValueAggFunction for number type.
-        */
-       public abstract static class 
NumberFirstValueAggFunctionWithoutOrderTest<T>
-                       extends FirstValueAggFunctionWithoutOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("3")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("1"),
-                                       null,
-                                       getValue("10")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - AggFunctionTestBase
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteFirstValueAggFunction.
         */
-       public static class ByteFirstValueAggFunctionWithoutOrderTest
+       public static final class ByteFirstValueAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueAggFunctionWithoutOrderTest<Byte> {
 
                @Override
@@ -119,7 +73,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for ShortFirstValueAggFunction.
         */
-       public static class ShortFirstValueAggFunctionWithoutOrderTest
+       public static final class ShortFirstValueAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueAggFunctionWithoutOrderTest<Short> {
 
                @Override
@@ -136,7 +90,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for IntFirstValueAggFunction.
         */
-       public static class IntFirstValueAggFunctionWithoutOrderTest
+       public static final class IntFirstValueAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueAggFunctionWithoutOrderTest<Integer> {
 
                @Override
@@ -153,7 +107,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for LongFirstValueAggFunction.
         */
-       public static class LongFirstValueAggFunctionWithoutOrderTest
+       public static final class LongFirstValueAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueAggFunctionWithoutOrderTest<Long> {
 
                @Override
@@ -170,7 +124,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for FloatFirstValueAggFunction.
         */
-       public static class FloatFirstValueAggFunctionWithoutOrderTest
+       public static final class FloatFirstValueAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueAggFunctionWithoutOrderTest<Float> {
 
                @Override
@@ -187,7 +141,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for DoubleFirstValueAggFunction.
         */
-       public static class DoubleFirstValueAggFunctionWithoutOrderTest
+       public static final class DoubleFirstValueAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueAggFunctionWithoutOrderTest<Double> {
 
                @Override
@@ -204,7 +158,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for BooleanFirstValueAggFunction.
         */
-       public static class BooleanFirstValueAggFunctionWithoutOrderTest extends
+       public static final class BooleanFirstValueAggFunctionWithoutOrderTest 
extends
                        FirstValueAggFunctionWithoutOrderTestBase<Boolean> {
 
                @Override
@@ -260,7 +214,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for DecimalFirstValueAggFunction.
         */
-       public static class DecimalFirstValueAggFunctionWithoutOrderTest extends
+       public static final class DecimalFirstValueAggFunctionWithoutOrderTest 
extends
                        FirstValueAggFunctionWithoutOrderTestBase<Decimal> {
 
                private int precision = 20;
@@ -312,7 +266,7 @@ public class FirstValueAggFunctionWithoutOrderTest {
        /**
         * Test for StringFirstValueAggFunction.
         */
-       public static class StringFirstValueAggFunctionWithoutOrderTest extends
+       public static final class StringFirstValueAggFunctionWithoutOrderTest 
extends
                        FirstValueAggFunctionWithoutOrderTestBase<BinaryString> 
{
 
                @Override
@@ -358,4 +312,64 @@ public class FirstValueAggFunctionWithoutOrderTest {
                        return new StringFirstValueAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide:
+       //  - common inputs
+       //  - accumulator class
+       // for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * The base test class for FirstValueAggFunction without order.
+        */
+       public abstract static class 
FirstValueAggFunctionWithoutOrderTestBase<T>
+               extends AggFunctionTestBase<T, GenericRow> {
+               @Override
+               protected Class<?> getAccClass() {
+                       return GenericRow.class;
+               }
+       }
+
+       /**
+        * Test FirstValueAggFunction for number type.
+        */
+       public abstract static class 
NumberFirstValueAggFunctionWithoutOrderTest<T>
+               extends FirstValueAggFunctionWithoutOrderTestBase<T> {
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("3")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("1"),
+                               null,
+                               getValue("10")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithOrderTest.java
index 770f75a..ef8fa23 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithOrderTest.java
@@ -45,97 +45,20 @@ import java.util.List;
  * This class tests `accumulate` method with order argument.
  */
 @RunWith(Enclosed.class)
-public class FirstValueWithRetractAggFunctionWithOrderTest {
+public final class FirstValueWithRetractAggFunctionWithOrderTest {
 
-       /**
-        * The base test class for FirstValueWithRetractAggFunction with order.
-        */
-       public abstract static class 
FirstValueWithRetractAggFunctionWithOrderTestBase<T>
-                       extends FirstLastValueAggFunctionWithOrderTestBase<T> {
-
-       @Override
-               protected Method getRetractFunc() throws NoSuchMethodException {
-                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class, Long.class);
-               }
-       }
-
-       /**
-        * Test FirstValueWithRetractAggFunction for number type.
-        */
-       public abstract static class 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<T>
-                       extends 
FirstValueWithRetractAggFunctionWithOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null,
-                                                       getValue("3"),
-                                                       getValue("2"),
-                                                       getValue("-99")
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("5")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<List<Long>> getInputOrderSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       10L,
-                                                       2L,
-                                                       5L,
-                                                       6L,
-                                                       11L,
-                                                       3L,
-                                                       7L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       8L,
-                                                       6L,
-                                                       9L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       6L,
-                                                       4L,
-                                                       3L
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("3"),
-                                       null,
-                                       getValue("5")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - FirstLastValueAggFunctionWithOrderTestBase -> tests specific for 
FirstValue and LastValue
+       //  - AggFunctionTestBase -> tests that apply to all aggregate functions
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteFirstValueWithRetractAggFunction.
         */
-       public static class ByteFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
ByteFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<Byte> {
 
                @Override
@@ -152,7 +75,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for ShortFirstValueWithRetractAggFunction.
         */
-       public static class ShortFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
ShortFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<Short> {
 
                @Override
@@ -169,7 +92,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for IntFirstValueWithRetractAggFunction.
         */
-       public static class IntFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
IntFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<Integer> {
 
                @Override
@@ -186,7 +109,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for LongFirstValueWithRetractAggFunction.
         */
-       public static class LongFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
LongFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<Long> {
 
                @Override
@@ -203,7 +126,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for FloatFirstValueWithRetractAggFunction.
         */
-       public static class FloatFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
FloatFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<Float> {
 
                @Override
@@ -220,7 +143,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for DoubleFirstValueWithRetractAggFunction.
         */
-       public static class DoubleFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
DoubleFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<Double> {
 
                @Override
@@ -237,7 +160,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for BooleanFirstValueWithRetractAggFunction.
         */
-       public static class BooleanFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
BooleanFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
FirstValueWithRetractAggFunctionWithOrderTestBase<Boolean> {
 
                @Override
@@ -327,7 +250,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for DecimalFirstValueWithRetractAggFunction.
         */
-       public static class DecimalFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
DecimalFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
FirstValueWithRetractAggFunctionWithOrderTestBase<Decimal> {
 
                private int precision = 20;
@@ -407,7 +330,7 @@ public class FirstValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for StringFirstValueWithRetractAggFunction.
         */
-       public static class StringFirstValueWithRetractAggFunctionWithOrderTest
+       public static final class 
StringFirstValueWithRetractAggFunctionWithOrderTest
                        extends 
FirstValueWithRetractAggFunctionWithOrderTestBase<BinaryString> {
 
                @Override
@@ -481,4 +404,94 @@ public class FirstValueWithRetractAggFunctionWithOrderTest 
{
                        return new StringFirstValueWithRetractAggFunction();
                }
        }
+
+       /**
+        * The base test class for FirstValueWithRetractAggFunction with order.
+        */
+       public abstract static class 
FirstValueWithRetractAggFunctionWithOrderTestBase<T>
+               extends FirstLastValueAggFunctionWithOrderTestBase<T> {
+
+               @Override
+               protected Method getRetractFunc() throws NoSuchMethodException {
+                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class, Long.class);
+               }
+       }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide common inputs for 
tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * Test FirstValueWithRetractAggFunction for number type.
+        */
+       public abstract static class 
NumberFirstValueWithRetractAggFunctionWithOrderTestBase<T>
+               extends FirstValueWithRetractAggFunctionWithOrderTestBase<T> {
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null,
+                                       getValue("3"),
+                                       getValue("2"),
+                                       getValue("-99")
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("5")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<List<Long>> getInputOrderSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       10L,
+                                       2L,
+                                       5L,
+                                       6L,
+                                       11L,
+                                       3L,
+                                       7L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       8L,
+                                       6L,
+                                       9L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       6L,
+                                       4L,
+                                       3L
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("3"),
+                               null,
+                               getValue("5")
+                       );
+               }
+       }
+
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithoutOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithoutOrderTest.java
index 2125885..cd31cef 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithoutOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/FirstValueWithRetractAggFunctionWithoutOrderTest.java
@@ -45,71 +45,19 @@ import java.util.List;
  * This class tests `accumulate` method without order argument.
  */
 @RunWith(Enclosed.class)
-public class FirstValueWithRetractAggFunctionWithoutOrderTest {
+public final class FirstValueWithRetractAggFunctionWithoutOrderTest {
 
-       /**
-        * The base test class for FirstValueWithRetractAggFunction without 
order.
-        */
-       public abstract static class 
FirstValueWithRetractAggFunctionWithoutOrderTestBase<T>
-                       extends AggFunctionTestBase<T, GenericRow> {
-
-               @Override
-               protected Class<?> getAccClass() {
-                       return GenericRow.class;
-               }
-
-               @Override
-               protected Method getRetractFunc() throws NoSuchMethodException {
-                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
-               }
-       }
-
-       /**
-        * Test FirstValueWithRetractAggFunction for number type.
-        */
-       public abstract static class 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<T>
-                       extends 
FirstValueWithRetractAggFunctionWithoutOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("3")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("1"),
-                                       null,
-                                       getValue("10")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - AggFunctionTestBase
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteFirstValueWithRetractAggFunction.
         */
-       public static class ByteFirstValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
ByteFirstValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<Byte> {
 
                @Override
@@ -126,7 +74,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for ShortFirstValueWithRetractAggFunction.
         */
-       public static class 
ShortFirstValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
ShortFirstValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<Short> {
 
                @Override
@@ -143,7 +91,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for IntFirstValueWithRetractAggFunction.
         */
-       public static class IntFirstValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
IntFirstValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<Integer> {
 
                @Override
@@ -160,7 +108,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for LongFirstValueWithRetractAggFunction.
         */
-       public static class LongFirstValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
LongFirstValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<Long> {
 
                @Override
@@ -177,7 +125,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for FloatFirstValueWithRetractAggFunction.
         */
-       public static class 
FloatFirstValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
FloatFirstValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<Float> {
 
                @Override
@@ -194,7 +142,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for DoubleFirstValueWithRetractAggFunction.
         */
-       public static class 
DoubleFirstValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
DoubleFirstValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<Double> {
 
                @Override
@@ -211,7 +159,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for BooleanFirstValueWithRetractAggFunction.
         */
-       public static class 
BooleanFirstValueWithRetractAggFunctionWithoutOrderTest extends
+       public static final class 
BooleanFirstValueWithRetractAggFunctionWithoutOrderTest extends
                        
FirstValueWithRetractAggFunctionWithoutOrderTestBase<Boolean> {
 
                @Override
@@ -267,7 +215,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for DecimalFirstValueWithRetractAggFunction.
         */
-       public static class 
DecimalFirstValueWithRetractAggFunctionWithoutOrderTest extends
+       public static final class 
DecimalFirstValueWithRetractAggFunctionWithoutOrderTest extends
                        
FirstValueWithRetractAggFunctionWithoutOrderTestBase<Decimal> {
 
                private int precision = 20;
@@ -319,7 +267,7 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for StringFirstValueWithRetractAggFunction.
         */
-       public static class 
StringFirstValueWithRetractAggFunctionWithoutOrderTest extends
+       public static final class 
StringFirstValueWithRetractAggFunctionWithoutOrderTest extends
                        
FirstValueWithRetractAggFunctionWithoutOrderTestBase<BinaryString> {
 
                @Override
@@ -365,4 +313,71 @@ public class 
FirstValueWithRetractAggFunctionWithoutOrderTest {
                        return new StringFirstValueWithRetractAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide common:
+       //  - inputs
+       //  - accumulator class
+       //  - accessor for retract function
+       //  for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * The base test class for FirstValueWithRetractAggFunction without 
order.
+        */
+       public abstract static class 
FirstValueWithRetractAggFunctionWithoutOrderTestBase<T>
+               extends AggFunctionTestBase<T, GenericRow> {
+
+               @Override
+               protected Class<?> getAccClass() {
+                       return GenericRow.class;
+               }
+
+               @Override
+               protected Method getRetractFunc() throws NoSuchMethodException {
+                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
+               }
+       }
+
+       /**
+        * Test FirstValueWithRetractAggFunction for number type.
+        */
+       public abstract static class 
NumberFirstValueWithRetractAggFunctionWithoutOrderTestBase<T>
+               extends FirstValueWithRetractAggFunctionWithoutOrderTestBase<T> 
{
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("3")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("1"),
+                               null,
+                               getValue("10")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithOrderTest.java
index 478c3e5..fb09301 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithOrderTest.java
@@ -44,93 +44,20 @@ import java.util.List;
  * This class tests `accumulate` method with order argument.
  */
 @RunWith(Enclosed.class)
-public class LastValueAggFunctionWithOrderTest {
+public final class LastValueAggFunctionWithOrderTest {
 
-       /**
-        * The base test class for LastValueAggFunction with order.
-        */
-       public abstract static class LastValueAggFunctionWithOrderTestBase<T>
-                       extends FirstLastValueAggFunctionWithOrderTestBase<T> {
-
-       }
-
-       /**
-        * Test LastValueAggFunction for number type.
-        */
-       public abstract static class 
NumberLastValueAggFunctionWithOrderTestBase<T>
-                       extends LastValueAggFunctionWithOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null,
-                                                       getValue("3"),
-                                                       getValue("2"),
-                                                       getValue("-99")
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("5")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<List<Long>> getInputOrderSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       10L,
-                                                       2L,
-                                                       5L,
-                                                       6L,
-                                                       11L,
-                                                       3L,
-                                                       17L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       8L,
-                                                       6L,
-                                                       9L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       6L,
-                                                       4L,
-                                                       3L
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("2"),
-                                       null,
-                                       getValue("10")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - FirstLastValueAggFunctionWithOrderTestBase -> tests specific for 
FirstValue and LastValue
+       //  - AggFunctionTestBase -> tests that apply to all aggregate functions
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteLastValueAggFunction.
         */
-       public static class ByteLastValueAggFunctionWithOrderTest
+       public static final class ByteLastValueAggFunctionWithOrderTest
                        extends 
NumberLastValueAggFunctionWithOrderTestBase<Byte> {
 
                @Override
@@ -147,7 +74,7 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for ShortLastValueAggFunction.
         */
-       public static class ShortLastValueAggFunctionWithOrderTest
+       public static final class ShortLastValueAggFunctionWithOrderTest
                        extends 
NumberLastValueAggFunctionWithOrderTestBase<Short> {
 
                @Override
@@ -164,7 +91,7 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for IntLastValueAggFunction.
         */
-       public static class IntLastValueAggFunctionWithOrderTest
+       public static final class IntLastValueAggFunctionWithOrderTest
                        extends 
NumberLastValueAggFunctionWithOrderTestBase<Integer> {
 
                @Override
@@ -181,7 +108,7 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for LongLastValueAggFunction.
         */
-       public static class LongLastValueAggFunctionWithOrderTest
+       public static final class LongLastValueAggFunctionWithOrderTest
                        extends 
NumberLastValueAggFunctionWithOrderTestBase<Long> {
 
                @Override
@@ -198,7 +125,7 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for FloatLastValueAggFunction.
         */
-       public static class FloatLastValueAggFunctionWithOrderTest
+       public static final class FloatLastValueAggFunctionWithOrderTest
                        extends 
NumberLastValueAggFunctionWithOrderTestBase<Float> {
 
                @Override
@@ -215,7 +142,7 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for DoubleLastValueAggFunction.
         */
-       public static class DoubleLastValueAggFunctionWithOrderTest
+       public static final class DoubleLastValueAggFunctionWithOrderTest
                        extends 
NumberLastValueAggFunctionWithOrderTestBase<Double> {
 
                @Override
@@ -232,8 +159,8 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for BooleanLastValueAggFunction.
         */
-       public static class BooleanLastValueAggFunctionWithOrderTest
-                       extends LastValueAggFunctionWithOrderTestBase<Boolean> {
+       public static final class BooleanLastValueAggFunctionWithOrderTest
+                       extends 
FirstLastValueAggFunctionWithOrderTestBase<Boolean> {
 
                @Override
                protected List<List<Boolean>> getInputValueSets() {
@@ -322,8 +249,8 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for DecimalLastValueAggFunction.
         */
-       public static class DecimalLastValueAggFunctionWithOrderTest
-                       extends LastValueAggFunctionWithOrderTestBase<Decimal> {
+       public static final class DecimalLastValueAggFunctionWithOrderTest
+                       extends 
FirstLastValueAggFunctionWithOrderTestBase<Decimal> {
 
                private int precision = 20;
                private int scale = 6;
@@ -402,8 +329,8 @@ public class LastValueAggFunctionWithOrderTest {
        /**
         * Test for StringLastValueAggFunction.
         */
-       public static class StringLastValueAggFunctionWithOrderTest
-                       extends 
LastValueAggFunctionWithOrderTestBase<BinaryString> {
+       public static final class StringLastValueAggFunctionWithOrderTest
+                       extends 
FirstLastValueAggFunctionWithOrderTestBase<BinaryString> {
 
                @Override
                protected List<List<BinaryString>> getInputValueSets() {
@@ -476,4 +403,81 @@ public class LastValueAggFunctionWithOrderTest {
                        return new StringLastValueAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide common inputs for 
tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * Test LastValueAggFunction for number type.
+        */
+       public abstract static class 
NumberLastValueAggFunctionWithOrderTestBase<T>
+               extends FirstLastValueAggFunctionWithOrderTestBase<T> {
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null,
+                                       getValue("3"),
+                                       getValue("2"),
+                                       getValue("-99")
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("5")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<List<Long>> getInputOrderSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       10L,
+                                       2L,
+                                       5L,
+                                       6L,
+                                       11L,
+                                       3L,
+                                       17L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       8L,
+                                       6L,
+                                       9L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       6L,
+                                       4L,
+                                       3L
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("2"),
+                               null,
+                               getValue("10")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithoutOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithoutOrderTest.java
index 4af3f87..1f65604 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithoutOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueAggFunctionWithoutOrderTest.java
@@ -44,66 +44,19 @@ import java.util.List;
  * This class tests `accumulate` method without order argument.
  */
 @RunWith(Enclosed.class)
-public class LastValueAggFunctionWithoutOrderTest {
+public final class LastValueAggFunctionWithoutOrderTest {
 
-       /**
-        * The base test class for LastValueAggFunction without order.
-        */
-       public abstract static class LastValueAggFunctionWithoutOrderTestBase<T>
-                       extends AggFunctionTestBase<T, GenericRow> {
-
-               @Override
-               protected Class<?> getAccClass() {
-                       return GenericRow.class;
-               }
-       }
-
-       /**
-        * Test LastValueAggFunction for number type.
-        */
-       public abstract static class 
NumberLastValueAggFunctionWithoutOrderTestBase<T>
-                       extends LastValueAggFunctionWithoutOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("3")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("3"),
-                                       null,
-                                       getValue("3")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - AggFunctionTestBase
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteLastValueAggFunction.
         */
-       public static class ByteLastValueAggFunctionWithoutOrderTest
+       public static final class ByteLastValueAggFunctionWithoutOrderTest
                        extends 
NumberLastValueAggFunctionWithoutOrderTestBase<Byte> {
 
                @Override
@@ -120,7 +73,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for ShortLastValueAggFunction.
         */
-       public static class ShortLastValueAggFunctionWithoutOrderTest
+       public static final class ShortLastValueAggFunctionWithoutOrderTest
                        extends 
NumberLastValueAggFunctionWithoutOrderTestBase<Short> {
 
                @Override
@@ -137,7 +90,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for IntLastValueAggFunction.
         */
-       public static class IntLastValueAggFunctionWithoutOrderTest
+       public static final class IntLastValueAggFunctionWithoutOrderTest
                        extends 
NumberLastValueAggFunctionWithoutOrderTestBase<Integer> {
 
                @Override
@@ -154,7 +107,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for LongLastValueAggFunction.
         */
-       public static class LongLastValueAggFunctionWithoutOrderTest
+       public static final class LongLastValueAggFunctionWithoutOrderTest
                        extends 
NumberLastValueAggFunctionWithoutOrderTestBase<Long> {
 
                @Override
@@ -171,7 +124,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for FloatLastValueAggFunction.
         */
-       public static class FloatLastValueAggFunctionWithoutOrderTest
+       public static final class FloatLastValueAggFunctionWithoutOrderTest
                        extends 
NumberLastValueAggFunctionWithoutOrderTestBase<Float> {
 
                @Override
@@ -188,7 +141,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for DoubleLastValueAggFunction.
         */
-       public static class DoubleLastValueAggFunctionWithoutOrderTest
+       public static final class DoubleLastValueAggFunctionWithoutOrderTest
                        extends 
NumberLastValueAggFunctionWithoutOrderTestBase<Double> {
 
                @Override
@@ -205,7 +158,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for BooleanLastValueAggFunction.
         */
-       public static class BooleanLastValueAggFunctionWithoutOrderTest extends
+       public static final class BooleanLastValueAggFunctionWithoutOrderTest 
extends
                        LastValueAggFunctionWithoutOrderTestBase<Boolean> {
 
                @Override
@@ -261,7 +214,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for DecimalLastValueAggFunction.
         */
-       public static class DecimalLastValueAggFunctionWithoutOrderTest extends
+       public static final class DecimalLastValueAggFunctionWithoutOrderTest 
extends
                        LastValueAggFunctionWithoutOrderTestBase<Decimal> {
 
                private int precision = 20;
@@ -313,7 +266,7 @@ public class LastValueAggFunctionWithoutOrderTest {
        /**
         * Test for StringLastValueAggFunction.
         */
-       public static class StringLastValueAggFunctionWithoutOrderTest extends
+       public static final class StringLastValueAggFunctionWithoutOrderTest 
extends
                        LastValueAggFunctionWithoutOrderTestBase<BinaryString> {
 
                @Override
@@ -360,4 +313,63 @@ public class LastValueAggFunctionWithoutOrderTest {
                        return new StringLastValueAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide common inputs and 
declare the accumulator
+       // class type for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * The base test class for LastValueAggFunction without order.
+        */
+       public abstract static class LastValueAggFunctionWithoutOrderTestBase<T>
+               extends AggFunctionTestBase<T, GenericRow> {
+
+               @Override
+               protected Class<?> getAccClass() {
+                       return GenericRow.class;
+               }
+       }
+
+       /**
+        * Test LastValueAggFunction for number type.
+        */
+       public abstract static class 
NumberLastValueAggFunctionWithoutOrderTestBase<T>
+               extends LastValueAggFunctionWithoutOrderTestBase<T> {
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("3")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("3"),
+                               null,
+                               getValue("3")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithOrderTest.java
index 8ef1cf4..bb3e052 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithOrderTest.java
@@ -45,97 +45,20 @@ import java.util.List;
  * This class tests `accumulate` method with order argument.
  */
 @RunWith(Enclosed.class)
-public class LastValueWithRetractAggFunctionWithOrderTest {
+public final class LastValueWithRetractAggFunctionWithOrderTest {
 
-       /**
-        * The base test class for LastValueWithRetractAggFunction with order.
-        */
-       public abstract static class 
LastValueWithRetractAggFunctionWithOrderTestBase<T>
-                       extends FirstLastValueAggFunctionWithOrderTestBase<T> {
-
-               @Override
-               protected Method getRetractFunc() throws NoSuchMethodException {
-                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class, Long.class);
-               }
-       }
-
-       /**
-        * Test LastValueWithRetractAggFunction for number type.
-        */
-       public abstract static class 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<T>
-                       extends 
LastValueWithRetractAggFunctionWithOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null,
-                                                       getValue("3"),
-                                                       getValue("2"),
-                                                       getValue("-99")
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("5")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<List<Long>> getInputOrderSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       10L,
-                                                       2L,
-                                                       5L,
-                                                       6L,
-                                                       11L,
-                                                       13L,
-                                                       7L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       8L,
-                                                       6L,
-                                                       9L,
-                                                       5L
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       6L,
-                                                       4L,
-                                                       3L
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("3"),
-                                       null,
-                                       getValue("10")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - FirstLastValueAggFunctionWithOrderTestBase -> tests specific for 
FirstValue and LastValue
+       //  - AggFunctionTestBase -> tests that apply to all aggregate functions
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteLastValueWithRetractAggFunction.
         */
-       public static class ByteLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
ByteLastValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<Byte> {
 
                @Override
@@ -152,7 +75,7 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for ShortLastValueWithRetractAggFunction.
         */
-       public static class ShortLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
ShortLastValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<Short> {
 
                @Override
@@ -169,7 +92,7 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for IntLastValueWithRetractAggFunction.
         */
-       public static class IntLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
IntLastValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<Integer> {
 
                @Override
@@ -186,7 +109,7 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for LongLastValueWithRetractAggFunction.
         */
-       public static class LongLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
LongLastValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<Long> {
 
                @Override
@@ -203,7 +126,7 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for FloatLastValueWithRetractAggFunction.
         */
-       public static class FloatLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
FloatLastValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<Float> {
 
                @Override
@@ -220,7 +143,7 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for DoubleLastValueWithRetractAggFunction.
         */
-       public static class DoubleLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
DoubleLastValueWithRetractAggFunctionWithOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<Double> {
 
                @Override
@@ -237,7 +160,7 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for BooleanLastValueWithRetractAggFunction.
         */
-       public static class BooleanLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
BooleanLastValueWithRetractAggFunctionWithOrderTest
                        extends 
LastValueWithRetractAggFunctionWithOrderTestBase<Boolean> {
 
                @Override
@@ -324,10 +247,11 @@ public class LastValueWithRetractAggFunctionWithOrderTest 
{
                }
        }
 
+
        /**
         * Test for DecimalLastValueWithRetractAggFunction.
         */
-       public static class DecimalLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
DecimalLastValueWithRetractAggFunctionWithOrderTest
                        extends 
LastValueWithRetractAggFunctionWithOrderTestBase<Decimal> {
 
                private int precision = 20;
@@ -407,7 +331,7 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
        /**
         * Test for StringLastValueWithRetractAggFunction.
         */
-       public static class StringLastValueWithRetractAggFunctionWithOrderTest
+       public static final class 
StringLastValueWithRetractAggFunctionWithOrderTest
                        extends 
LastValueWithRetractAggFunctionWithOrderTestBase<BinaryString> {
 
                @Override
@@ -487,4 +411,94 @@ public class LastValueWithRetractAggFunctionWithOrderTest {
                        return new StringLastValueWithRetractAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide common inputs and 
accessor for retract function
+       // for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * The base test class for LastValueWithRetractAggFunction with order.
+        */
+       public abstract static class 
LastValueWithRetractAggFunctionWithOrderTestBase<T>
+               extends FirstLastValueAggFunctionWithOrderTestBase<T> {
+
+               @Override
+               protected Method getRetractFunc() throws NoSuchMethodException {
+                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class, Long.class);
+               }
+       }
+
+       /**
+        * Test LastValueWithRetractAggFunction for number type.
+        */
+       public abstract static class 
NumberLastValueWithRetractAggFunctionWithOrderTestBase<T>
+               extends LastValueWithRetractAggFunctionWithOrderTestBase<T> {
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null,
+                                       getValue("3"),
+                                       getValue("2"),
+                                       getValue("-99")
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("5")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<List<Long>> getInputOrderSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       10L,
+                                       2L,
+                                       5L,
+                                       6L,
+                                       11L,
+                                       13L,
+                                       7L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       8L,
+                                       6L,
+                                       9L,
+                                       5L
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       6L,
+                                       4L,
+                                       3L
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("3"),
+                               null,
+                               getValue("10")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithoutOrderTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithoutOrderTest.java
index 801a4ed..ed72709 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithoutOrderTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/LastValueWithRetractAggFunctionWithoutOrderTest.java
@@ -45,71 +45,19 @@ import java.util.List;
  * This class tests `accumulate` method without order argument.
  */
 @RunWith(Enclosed.class)
-public class LastValueWithRetractAggFunctionWithoutOrderTest {
+public final class LastValueWithRetractAggFunctionWithoutOrderTest {
 
-       /**
-        * The base test class for LastValueWithRetractAggFunction without 
order.
-        */
-       public abstract static class 
LastValueWithRetractAggFunctionWithoutOrderTestBase<T>
-                       extends AggFunctionTestBase<T, GenericRow> {
-
-               @Override
-               protected Class<?> getAccClass() {
-                       return GenericRow.class;
-               }
-
-               @Override
-               protected Method getRetractFunc() throws NoSuchMethodException {
-                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
-               }
-       }
-
-       /**
-        * Test LastValueWithRetractAggFunction for number type.
-        */
-       public abstract static class 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<T>
-                       extends 
LastValueWithRetractAggFunctionWithoutOrderTestBase<T> {
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10"),
-                                                       null,
-                                                       getValue("3")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getValue("3"),
-                                       null,
-                                       getValue("3")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - AggFunctionTestBase
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteLastValueWithRetractAggFunction.
         */
-       public static class ByteLastValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
ByteLastValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<Byte> {
 
                @Override
@@ -126,7 +74,7 @@ public class LastValueWithRetractAggFunctionWithoutOrderTest 
{
        /**
         * Test for ShortLastValueWithRetractAggFunction.
         */
-       public static class ShortLastValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
ShortLastValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<Short> {
 
                @Override
@@ -143,7 +91,7 @@ public class LastValueWithRetractAggFunctionWithoutOrderTest 
{
        /**
         * Test for IntLastValueWithRetractAggFunction.
         */
-       public static class IntLastValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
IntLastValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<Integer> {
 
                @Override
@@ -160,7 +108,7 @@ public class 
LastValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for LongLastValueWithRetractAggFunction.
         */
-       public static class LongLastValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
LongLastValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<Long> {
 
                @Override
@@ -177,7 +125,7 @@ public class 
LastValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for FloatLastValueWithRetractAggFunction.
         */
-       public static class FloatLastValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
FloatLastValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<Float> {
 
                @Override
@@ -194,7 +142,7 @@ public class 
LastValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for DoubleLastValueWithRetractAggFunction.
         */
-       public static class 
DoubleLastValueWithRetractAggFunctionWithoutOrderTest
+       public static final class 
DoubleLastValueWithRetractAggFunctionWithoutOrderTest
                        extends 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<Double> {
 
                @Override
@@ -211,7 +159,7 @@ public class 
LastValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for BooleanLastValueWithRetractAggFunction.
         */
-       public static class 
BooleanLastValueWithRetractAggFunctionWithoutOrderTest extends
+       public static final class 
BooleanLastValueWithRetractAggFunctionWithoutOrderTest extends
                        
LastValueWithRetractAggFunctionWithoutOrderTestBase<Boolean> {
 
                @Override
@@ -267,7 +215,7 @@ public class 
LastValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for DecimalLastValueWithRetractAggFunction.
         */
-       public static class 
DecimalLastValueWithRetractAggFunctionWithoutOrderTest extends
+       public static final class 
DecimalLastValueWithRetractAggFunctionWithoutOrderTest extends
                        
LastValueWithRetractAggFunctionWithoutOrderTestBase<Decimal> {
 
                private int precision = 20;
@@ -319,7 +267,7 @@ public class 
LastValueWithRetractAggFunctionWithoutOrderTest {
        /**
         * Test for StringLastValueWithRetractAggFunction.
         */
-       public static class 
StringLastValueWithRetractAggFunctionWithoutOrderTest extends
+       public static final class 
StringLastValueWithRetractAggFunctionWithoutOrderTest extends
                        
LastValueWithRetractAggFunctionWithoutOrderTestBase<BinaryString> {
 
                @Override
@@ -365,4 +313,71 @@ public class 
LastValueWithRetractAggFunctionWithoutOrderTest {
                        return new StringLastValueWithRetractAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide:
+       //  - common inputs
+       //  - declare the accumulator class
+       //  - accessor for retract function
+       //  for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * The base test class for LastValueWithRetractAggFunction without 
order.
+        */
+       public abstract static class 
LastValueWithRetractAggFunctionWithoutOrderTestBase<T>
+               extends AggFunctionTestBase<T, GenericRow> {
+
+               @Override
+               protected Class<?> getAccClass() {
+                       return GenericRow.class;
+               }
+
+               @Override
+               protected Method getRetractFunc() throws NoSuchMethodException {
+                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
+               }
+       }
+
+       /**
+        * Test LastValueWithRetractAggFunction for number type.
+        */
+       public abstract static class 
NumberLastValueWithRetractAggFunctionWithoutOrderTestBase<T>
+               extends LastValueWithRetractAggFunctionWithoutOrderTestBase<T> {
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10"),
+                                       null,
+                                       getValue("3")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getValue("3"),
+                               null,
+                               getValue("3")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWithRetractAggFunctionTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWithRetractAggFunctionTest.java
index 5c5566e..d8a848b 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWithRetractAggFunctionTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWithRetractAggFunctionTest.java
@@ -29,7 +29,7 @@ import java.util.List;
 /**
  * Test case for built-in LISTAGG with retraction aggregate function.
  */
-public class ListAggWithRetractAggFunctionTest
+public final class ListAggWithRetractAggFunctionTest
        extends AggFunctionTestBase<BinaryString, 
ListAggWithRetractAccumulator> {
 
        @Override
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWsWithRetractAggFunctionTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWsWithRetractAggFunctionTest.java
index 08c4998..07ca080 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWsWithRetractAggFunctionTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/ListAggWsWithRetractAggFunctionTest.java
@@ -35,7 +35,7 @@ import static org.junit.Assert.assertEquals;
 /**
  * Test case for built-in ListAggWs with retraction aggregate function.
  */
-public class ListAggWsWithRetractAggFunctionTest
+public final class ListAggWsWithRetractAggFunctionTest
        extends AggFunctionTestBase<BinaryString, 
ListAggWsWithRetractAccumulator> {
 
        @Override
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MaxWithRetractAggFunctionTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MaxWithRetractAggFunctionTest.java
index 0ee6899..f9eb15b 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MaxWithRetractAggFunctionTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MaxWithRetractAggFunctionTest.java
@@ -50,80 +50,19 @@ import java.util.List;
  * Test case for built-in Max with retraction aggregate function.
  */
 @RunWith(Enclosed.class)
-public class MaxWithRetractAggFunctionTest {
+public final class MaxWithRetractAggFunctionTest {
 
-       /**
-        * The base test class for MaxWithRetractAggFunction.
-        */
-       public abstract static class MaxWithRetractAggFunctionTestBase<T>
-                       extends AggFunctionTestBase<T, 
MaxWithRetractAccumulator<T>> {
-
-               @Override
-               protected Class<?> getAccClass() {
-                       return MaxWithRetractAccumulator.class;
-               }
-
-               @Override
-               protected Method getRetractFunc() throws NoSuchMethodException {
-                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
-               }
-       }
-
-       /**
-        * Test MaxWithRetractAggFunction for number type.
-        */
-       public abstract static class NumberMaxWithRetractAggFunctionTest<T> 
extends MaxWithRetractAggFunctionTestBase {
-               protected abstract T getMinValue();
-
-               protected abstract T getMaxValue();
-
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getMaxValue(),
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       getValue("56"),
-                                                       getValue("0"),
-                                                       getMinValue(),
-                                                       getValue("-20"),
-                                                       getValue("17"),
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getMaxValue(),
-                                       null,
-                                       getValue("10")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - AggFunctionTestBase
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteMaxWithRetractAggFunction.
         */
-       public static class ByteMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Byte> {
+       public static final class ByteMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Byte> {
 
                @Override
                protected Byte getMinValue() {
@@ -149,7 +88,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for ShortMaxWithRetractAggFunction.
         */
-       public static class ShortMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Short> {
+       public static final class ShortMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Short> {
 
                @Override
                protected Short getMinValue() {
@@ -175,7 +114,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for IntMaxWithRetractAggFunction.
         */
-       public static class IntMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Integer> {
+       public static final class IntMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Integer> {
 
                @Override
                protected Integer getMinValue() {
@@ -201,7 +140,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for LongMaxWithRetractAggFunction.
         */
-       public static class LongMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Long> {
+       public static final class LongMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Long> {
 
                @Override
                protected Long getMinValue() {
@@ -227,7 +166,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for FloatMaxWithRetractAggFunction.
         */
-       public static class FloatMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Float> {
+       public static final class FloatMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Float> {
 
                @Override
                protected Float getMinValue() {
@@ -253,7 +192,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for DoubleMaxWithRetractAggFunction.
         */
-       public static class DoubleMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Double> {
+       public static final class DoubleMaxWithRetractAggFunctionTest extends 
NumberMaxWithRetractAggFunctionTest<Double> {
 
                @Override
                protected Double getMinValue() {
@@ -279,7 +218,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for BooleanMaxWithRetractAggFunction.
         */
-       public static class BooleanMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Boolean> {
+       public static final class BooleanMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Boolean> {
 
                @Override
                protected List<List<Boolean>> getInputValueSets() {
@@ -344,7 +283,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for DecimalMaxWithRetractAggFunction.
         */
-       public static class DecimalMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Decimal> {
+       public static final class DecimalMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Decimal> {
 
                private int precision = 20;
                private int scale = 6;
@@ -395,7 +334,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for StringMaxWithRetractAggFunction.
         */
-       public static class StringMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<BinaryString> {
+       public static final class StringMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<BinaryString> {
 
                @Override
                protected List<List<BinaryString>> getInputValueSets() {
@@ -444,7 +383,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for TimestampMaxWithRetractAggFunction.
         */
-       public static class TimestampMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<SqlTimestamp> {
+       public static final class TimestampMaxWithRetractAggFunctionTest 
extends MaxWithRetractAggFunctionTestBase<SqlTimestamp> {
 
                @Override
                protected List<List<SqlTimestamp>> getInputValueSets() {
@@ -488,7 +427,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for TimestampMaxWithRetractAggFunction, precision is 9.
         */
-       public static class Timestamp9MaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<SqlTimestamp> {
+       public static final class Timestamp9MaxWithRetractAggFunctionTest 
extends MaxWithRetractAggFunctionTestBase<SqlTimestamp> {
 
                @Override
                protected List<List<SqlTimestamp>> getInputValueSets() {
@@ -534,7 +473,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for DateMaxWithRetractAggFunction.
         */
-       public static class DateMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Date> {
+       public static final class DateMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Date> {
 
                @Override
                protected List<List<Date>> getInputValueSets() {
@@ -578,7 +517,7 @@ public class MaxWithRetractAggFunctionTest {
        /**
         * Test for TimeMaxWithRetractAggFunction.
         */
-       public static class TimeMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Time> {
+       public static final class TimeMaxWithRetractAggFunctionTest extends 
MaxWithRetractAggFunctionTestBase<Time> {
 
                @Override
                protected List<List<Time>> getInputValueSets() {
@@ -618,4 +557,80 @@ public class MaxWithRetractAggFunctionTest {
                        return new TimeMaxWithRetractAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide:
+       //  - common inputs
+       //  - declare the accumulator class
+       //  - accessor for retract function
+       //  for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * The base test class for MaxWithRetractAggFunction.
+        */
+       public abstract static class MaxWithRetractAggFunctionTestBase<T>
+               extends AggFunctionTestBase<T, MaxWithRetractAccumulator<T>> {
+
+               @Override
+               protected Class<?> getAccClass() {
+                       return MaxWithRetractAccumulator.class;
+               }
+
+               @Override
+               protected Method getRetractFunc() throws NoSuchMethodException {
+                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
+               }
+       }
+
+       /**
+        * Test MaxWithRetractAggFunction for number type.
+        */
+       public abstract static class NumberMaxWithRetractAggFunctionTest<T> 
extends MaxWithRetractAggFunctionTestBase<T> {
+               protected abstract T getMinValue();
+
+               protected abstract T getMaxValue();
+
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getMaxValue(),
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       getValue("56"),
+                                       getValue("0"),
+                                       getMinValue(),
+                                       getValue("-20"),
+                                       getValue("17"),
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getMaxValue(),
+                               null,
+                               getValue("10")
+                       );
+               }
+       }
 }
diff --git 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MinWithRetractAggFunctionTest.java
 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MinWithRetractAggFunctionTest.java
index 3d48b9b..a922cf2 100644
--- 
a/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MinWithRetractAggFunctionTest.java
+++ 
b/flink-table/flink-table-planner-blink/src/test/java/org/apache/flink/table/planner/functions/aggfunctions/MinWithRetractAggFunctionTest.java
@@ -50,80 +50,19 @@ import java.util.List;
  * Test case for built-in Min with retraction aggregate function.
  */
 @RunWith(Enclosed.class)
-public class MinWithRetractAggFunctionTest {
+public final class MinWithRetractAggFunctionTest {
 
-       /**
-        * The base test class for MinWithRetractAggFunction.
-        */
-       public abstract static class MinWithRetractAggFunctionTestBase<T>
-                       extends AggFunctionTestBase<T, 
MinWithRetractAccumulator<T>> {
-
-               @Override
-               protected Class<?> getAccClass() {
-                       return MinWithRetractAccumulator.class;
-               }
-
-               @Override
-               protected Method getRetractFunc() throws NoSuchMethodException {
-                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
-               }
-       }
-
-       /**
-        * Test MinWithRetractAggFunction for number type.
-        */
-       public abstract static class NumberMinWithRetractAggFunctionTestBase<T> 
extends MinWithRetractAggFunctionTestBase<T> {
-               protected abstract T getMinValue();
-
-               protected abstract T getMaxValue();
-
-               protected abstract T getValue(String v);
-
-               @Override
-               protected List<List<T>> getInputValueSets() {
-                       return Arrays.asList(
-                                       Arrays.asList(
-                                                       getValue("1"),
-                                                       null,
-                                                       getMaxValue(),
-                                                       getValue("-99"),
-                                                       getValue("3"),
-                                                       getValue("56"),
-                                                       getValue("0"),
-                                                       getMinValue(),
-                                                       getValue("-20"),
-                                                       getValue("17"),
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null,
-                                                       null
-                                       ),
-                                       Arrays.asList(
-                                                       null,
-                                                       getValue("10")
-                                       )
-                       );
-               }
-
-               @Override
-               protected List<T> getExpectedResults() {
-                       return Arrays.asList(
-                                       getMinValue(),
-                                       null,
-                                       getValue("10")
-                       );
-               }
-       }
+       // 
--------------------------------------------------------------------------------------------
+       // Test sets for a particular type being aggregated
+       //
+       // Actual tests are implemented in:
+       //  - AggFunctionTestBase
+       // 
--------------------------------------------------------------------------------------------
 
        /**
         * Test for ByteMinWithRetractAggFunction.
         */
-       public static class ByteMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Byte> {
+       public static final class ByteMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Byte> {
 
                @Override
                protected Byte getMinValue() {
@@ -149,7 +88,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for ShortMinWithRetractAggFunction.
         */
-       public static class ShortMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Short> {
+       public static final class ShortMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Short> {
 
                @Override
                protected Short getMinValue() {
@@ -175,7 +114,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for IntMinWithRetractAggFunction.
         */
-       public static class IntMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Integer> {
+       public static final class IntMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Integer> {
 
                @Override
                protected Integer getMinValue() {
@@ -201,7 +140,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for LongMinWithRetractAggFunction.
         */
-       public static class LongMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Long> {
+       public static final class LongMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Long> {
 
                @Override
                protected Long getMinValue() {
@@ -227,7 +166,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for FloatMinWithRetractAggFunction.
         */
-       public static class FloatMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Float> {
+       public static final class FloatMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Float> {
 
                @Override
                protected Float getMinValue() {
@@ -253,7 +192,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for DoubleMinWithRetractAggFunction.
         */
-       public static class DoubleMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Double> {
+       public static final class DoubleMinWithRetractAggFunctionTest extends 
NumberMinWithRetractAggFunctionTestBase<Double> {
 
                @Override
                protected Double getMinValue() {
@@ -279,7 +218,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for BooleanMinWithRetractAggFunction.
         */
-       public static class BooleanMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Boolean> {
+       public static final class BooleanMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Boolean> {
 
                @Override
                protected List<List<Boolean>> getInputValueSets() {
@@ -334,7 +273,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for DecimalMinWithRetractAggFunction.
         */
-       public static class DecimalMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Decimal> {
+       public static final class DecimalMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Decimal> {
 
                private int precision = 20;
                private int scale = 6;
@@ -385,7 +324,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for StringMinWithRetractAggFunction.
         */
-       public static class StringMinWithRetractAggFunctionTest
+       public static final class StringMinWithRetractAggFunctionTest
                        extends MinWithRetractAggFunctionTestBase<BinaryString> 
{
 
                @Override
@@ -435,7 +374,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for TimestampMinWithRetractAggFunction.
         */
-       public static class TimestampMinWithRetractAggFunctionTest
+       public static final class TimestampMinWithRetractAggFunctionTest
                        extends MinWithRetractAggFunctionTestBase<SqlTimestamp> 
{
 
                @Override
@@ -480,7 +419,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for TimestampMinWithRetractAggFunction, precision is 9.
         */
-       public static class Timestamp9MinWithRetractAggFunctionTest
+       public static final class Timestamp9MinWithRetractAggFunctionTest
                        extends MinWithRetractAggFunctionTestBase<SqlTimestamp> 
{
 
                @Override
@@ -527,7 +466,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for DateMinWithRetractAggFunction.
         */
-       public static class DateMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Date> {
+       public static final class DateMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Date> {
 
                @Override
                protected List<List<Date>> getInputValueSets() {
@@ -571,7 +510,7 @@ public class MinWithRetractAggFunctionTest {
        /**
         * Test for TimeMinWithRetractAggFunction.
         */
-       public static class TimeMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Time> {
+       public static final class TimeMinWithRetractAggFunctionTest extends 
MinWithRetractAggFunctionTestBase<Time> {
 
                @Override
                protected List<List<Time>> getInputValueSets() {
@@ -611,4 +550,80 @@ public class MinWithRetractAggFunctionTest {
                        return new TimeMinWithRetractAggFunction();
                }
        }
+
+       // 
--------------------------------------------------------------------------------------------
+       // This section contain base classes that provide:
+       //  - common inputs
+       //  - declare the accumulator class
+       //  - accessor for retract function
+       //  for tests declared above.
+       // 
--------------------------------------------------------------------------------------------
+
+       /**
+        * The base test class for MinWithRetractAggFunction.
+        */
+       public abstract static class MinWithRetractAggFunctionTestBase<T>
+               extends AggFunctionTestBase<T, MinWithRetractAccumulator<T>> {
+
+               @Override
+               protected Class<?> getAccClass() {
+                       return MinWithRetractAccumulator.class;
+               }
+
+               @Override
+               protected Method getRetractFunc() throws NoSuchMethodException {
+                       return getAggregator().getClass().getMethod("retract", 
getAccClass(), Object.class);
+               }
+       }
+
+       /**
+        * Test MinWithRetractAggFunction for number type.
+        */
+       public abstract static class NumberMinWithRetractAggFunctionTestBase<T> 
extends MinWithRetractAggFunctionTestBase<T> {
+               protected abstract T getMinValue();
+
+               protected abstract T getMaxValue();
+
+               protected abstract T getValue(String v);
+
+               @Override
+               protected List<List<T>> getInputValueSets() {
+                       return Arrays.asList(
+                               Arrays.asList(
+                                       getValue("1"),
+                                       null,
+                                       getMaxValue(),
+                                       getValue("-99"),
+                                       getValue("3"),
+                                       getValue("56"),
+                                       getValue("0"),
+                                       getMinValue(),
+                                       getValue("-20"),
+                                       getValue("17"),
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       null,
+                                       null,
+                                       null,
+                                       null,
+                                       null
+                               ),
+                               Arrays.asList(
+                                       null,
+                                       getValue("10")
+                               )
+                       );
+               }
+
+               @Override
+               protected List<T> getExpectedResults() {
+                       return Arrays.asList(
+                               getMinValue(),
+                               null,
+                               getValue("10")
+                       );
+               }
+       }
 }

Reply via email to