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 <qcx978132...@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]() + } +}