You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by al...@apache.org on 2020/05/28 11:52:05 UTC

[flink] 39/42: [FLINK-13632] Port ScalaCaseClassSerializer upgrade test to TypeSerializerUpgradeTestBase

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

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

commit 6552c8de076a6f2afa75746fe1171e9548cb4ed6
Author: klion26 <qc...@gmail.com>
AuthorDate: Wed Apr 15 19:16:56 2020 +0800

    [FLINK-13632] Port ScalaCaseClassSerializer upgrade test to TypeSerializerUpgradeTestBase
---
 .../flink-1.6-scala-case-class-serializer-data     | Bin 100 -> 0 bytes
 .../flink-1.6-scala-case-class-serializer-snapshot | Bin 1857 -> 0 bytes
 .../flink-1.7-scala-case-class-serializer-data     | Bin 100 -> 0 bytes
 .../flink-1.7-scala-case-class-serializer-snapshot | Bin 1865 -> 0 bytes
 ...aCaseClassSerializerSnapshotMigrationTest.scala |  71 ----------------
 .../ScalaCaseClassSerializerUpgradeTest.scala      |  89 +++++++++++++++++++++
 6 files changed, 89 insertions(+), 71 deletions(-)

diff --git a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-data b/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-data
deleted file mode 100644
index 3a39ecb..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-snapshot b/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-snapshot
deleted file mode 100644
index 4b9ae96..0000000
Binary files a/flink-scala/src/test/resources/flink-1.6-scala-case-class-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-data b/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-data
deleted file mode 100644
index 3a39ecb..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-data and /dev/null differ
diff --git a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-snapshot b/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-snapshot
deleted file mode 100644
index 3fe7625..0000000
Binary files a/flink-scala/src/test/resources/flink-1.7-scala-case-class-serializer-snapshot and /dev/null differ
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerSnapshotMigrationTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerSnapshotMigrationTest.scala
deleted file mode 100644
index 9272846..0000000
--- a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerSnapshotMigrationTest.scala
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.flink.api.scala.typeutils
-
-import org.apache.flink.api.common.ExecutionConfig
-import org.apache.flink.api.common.typeutils.TypeSerializerSnapshotMigrationTestBase.{
-  TestSpecification,
-  TestSpecifications
-}
-import org.apache.flink.api.common.typeutils.{
-  TypeSerializer,
-  TypeSerializerSnapshotMigrationTestBase
-}
-import org.apache.flink.api.scala.createTypeInformation
-import org.apache.flink.api.scala.types.CustomCaseClass
-import org.apache.flink.testutils.migration.MigrationVersion
-
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
-
-import java.util
-
-/**
-  * Migration tests for the [[ScalaCaseClassSerializer]].
-  */
-@RunWith(classOf[Parameterized])
-class ScalaCaseClassSerializerSnapshotMigrationTest(
-  spec: TestSpecification[CustomCaseClass]
-) extends TypeSerializerSnapshotMigrationTestBase[CustomCaseClass](spec) {}
-
-object ScalaCaseClassSerializerSnapshotMigrationTest {
-
-  private val typeInfo = createTypeInformation[CustomCaseClass]
-
-  private val supplier =
-    new util.function.Supplier[TypeSerializer[CustomCaseClass]] {
-      override def get(): TypeSerializer[CustomCaseClass] =
-        typeInfo.createSerializer(new ExecutionConfig)
-    }
-
-  @Parameterized.Parameters(name = "Test Specification = {0}")
-  def testSpecifications(): util.Collection[TestSpecification[_]] = {
-    val spec =
-      new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7)
-
-    spec.add(
-      "scala-case-class-serializer",
-      classOf[ScalaCaseClassSerializer[CustomCaseClass]],
-      classOf[ScalaCaseClassSerializerSnapshot[CustomCaseClass]],
-      supplier
-    )
-
-    spec.get()
-  }
-}
diff --git a/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerUpgradeTest.scala b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerUpgradeTest.scala
new file mode 100644
index 0000000..24012e2
--- /dev/null
+++ b/flink-scala/src/test/scala/org/apache/flink/api/scala/typeutils/ScalaCaseClassSerializerUpgradeTest.scala
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.flink.api.scala.typeutils
+
+import java.util
+
+import org.apache.flink.api.common.ExecutionConfig
+import org.apache.flink.api.common.typeutils.TypeSerializerUpgradeTestBase.TestSpecification
+import org.apache.flink.api.common.typeutils.{TypeSerializer, TypeSerializerMatchers, TypeSerializerSchemaCompatibility, TypeSerializerUpgradeTestBase}
+import org.apache.flink.api.scala.createTypeInformation
+import org.apache.flink.api.scala.types.CustomCaseClass
+import org.apache.flink.testutils.migration.MigrationVersion
+import org.hamcrest.Matcher
+import org.hamcrest.Matchers.is
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+/**
+ * A [[TypeSerializerUpgradeTestBase]] for [[ScalaCaseClassSerializer]].
+ */
+@RunWith(classOf[Parameterized])
+class ScalaCaseClassSerializerUpgradeTest(
+  spec: TestSpecification[CustomCaseClass, CustomCaseClass]
+) extends TypeSerializerUpgradeTestBase[CustomCaseClass, CustomCaseClass](spec) {
+}
+
+object ScalaCaseClassSerializerUpgradeTest {
+
+  private val typeInfo = createTypeInformation[CustomCaseClass]
+
+  private val supplier =
+    new util.function.Supplier[TypeSerializer[CustomCaseClass]] {
+      override def get(): TypeSerializer[CustomCaseClass] =
+        typeInfo.createSerializer(new ExecutionConfig)
+    }
+
+  @Parameterized.Parameters(name = "Test Specification = {0}")
+  def testSpecifications(): util.Collection[TestSpecification[_, _]] = {
+    val testSpecifications =
+      new util.ArrayList[TypeSerializerUpgradeTestBase.TestSpecification[_, _]]
+    for (migrationVersion <- TypeSerializerUpgradeTestBase.MIGRATION_VERSIONS) {
+      testSpecifications.add(
+        new TypeSerializerUpgradeTestBase.TestSpecification[CustomCaseClass, CustomCaseClass]
+        ("scala-case-class-serializer",
+          migrationVersion,
+          classOf[ScalaCaseClassSerializerSetup],
+          classOf[ScalaCaseClassSerializerVerifier]))
+    }
+    testSpecifications
+  }
+
+  /**
+   * This class is only public to work with
+   * [[org.apache.flink.api.common.typeutils.ClassRelocator]].
+   */
+  final class ScalaCaseClassSerializerSetup
+      extends TypeSerializerUpgradeTestBase.PreUpgradeSetup[CustomCaseClass] {
+    override def createPriorSerializer: TypeSerializer[CustomCaseClass] = supplier.get()
+
+    override def createTestData: CustomCaseClass = CustomCaseClass("flink", 11)
+  }
+
+  final class ScalaCaseClassSerializerVerifier
+      extends TypeSerializerUpgradeTestBase.UpgradeVerifier[CustomCaseClass] {
+    override def createUpgradedSerializer: TypeSerializer[CustomCaseClass] = supplier.get()
+
+    override def testDataMatcher: Matcher[CustomCaseClass] = is(CustomCaseClass("flink", 11))
+
+    override def schemaCompatibilityMatcher(version: MigrationVersion):
+        Matcher[TypeSerializerSchemaCompatibility[CustomCaseClass]] =
+      TypeSerializerMatchers.isCompatibleAsIs[CustomCaseClass]()
+  }
+}