diff --git a/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorIT.java b/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorIT.java index 3bbf7b885..a857d66c8 100644 --- a/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorIT.java +++ b/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorIT.java @@ -166,20 +166,17 @@ public void shouldValidateAcceptableConfiguration() { Recommender tableNameRecommender = MySqlConnectorConfig.TABLE_WHITELIST.recommender(); List tableNames = tableNameRecommender.validValues(MySqlConnectorConfig.TABLE_WHITELIST, config); - assertThat(tableNames).containsOnly("connector_test.customers", - "connector_test.orders", - "connector_test.products", - "connector_test.products_on_hand", - "connector_test_ro.customers", - "connector_test_ro.orders", - "connector_test_ro.products", - "connector_test_ro.products_on_hand", - "regression_test.t1464075356413_testtable6", - "regression_test.dbz_85_fractest", - "regression_test.dbz84_integer_types_table", - "readbinlog_test.product", - "readbinlog_test.purchased", - "readbinlog_test.person"); + assertThat(tableNames).contains("connector_test.customers", + "connector_test.orders", + "connector_test.products", + "connector_test.products_on_hand", + "connector_test_ro.customers", + "connector_test_ro.orders", + "connector_test_ro.products", + "connector_test_ro.products_on_hand", + "regression_test.t1464075356413_testtable6", + "regression_test.dbz_85_fractest", + "regression_test.dbz84_integer_types_table"); Testing.debug("List of tableNames: " + tableNames); // Now set the whitelist to two databases ... diff --git a/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorRegressionIT.java b/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorRegressionIT.java index a2afcfab6..53821ee10 100644 --- a/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorRegressionIT.java +++ b/debezium-connector-mysql/src/test/java/io/debezium/connector/mysql/MySqlConnectorRegressionIT.java @@ -24,6 +24,7 @@ import io.debezium.config.Configuration; import io.debezium.connector.mysql.MySqlConnectorConfig.SnapshotMode; import io.debezium.data.Envelope; +import io.debezium.doc.FixFor; import io.debezium.embedded.AbstractConnectorTest; import io.debezium.relational.history.FileDatabaseHistory; import io.debezium.util.Testing; @@ -54,6 +55,7 @@ public void afterEach() { } @Test + @FixFor( "DBZ-61" ) public void shouldConsumeAllEventsFromDatabaseUsingBinlogAndNoSnapshot() throws SQLException, InterruptedException { // Use the DB configuration to define the connector's configuration ... config = Configuration.create() diff --git a/debezium-connector-mysql/src/test/resources/log4j.properties b/debezium-connector-mysql/src/test/resources/log4j.properties index add5e78da..47ce731a9 100644 --- a/debezium-connector-mysql/src/test/resources/log4j.properties +++ b/debezium-connector-mysql/src/test/resources/log4j.properties @@ -10,4 +10,5 @@ log4j.rootLogger=INFO, stdout # Set up the default logging to be INFO level, then override specific units log4j.logger.io.debezium=INFO log4j.logger.io.debezium.embedded.EmbeddedEngine$EmbeddedConfig=WARN -#log4j.logger.io.debezium.connector.mysql.BinlogReader=DEBUG \ No newline at end of file +#log4j.logger.io.debezium.connector.mysql.BinlogReader=DEBUG +#log4j.logger.io.debezium.connector.mysql.SnapshotReader=DEBUG \ No newline at end of file diff --git a/debezium-core/src/test/java/io/debezium/doc/FixFor.java b/debezium-core/src/test/java/io/debezium/doc/FixFor.java new file mode 100644 index 000000000..3b56bad56 --- /dev/null +++ b/debezium-core/src/test/java/io/debezium/doc/FixFor.java @@ -0,0 +1,49 @@ +/* + * Copyright Debezium Authors. + * + * Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package io.debezium.doc; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.CLASS; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation that can be used to help track that a test is verifying the fix for one or more specific issues. To use, simply + * place this annotation on the test method and reference the JIRA issue number: + * + *
+ *    @FixFor("DBZ-123")
+ *    @Test
+ *    public void shouldVerifyBehavior() {
+ *     ...
+ *    }
+ * 
+ *

+ * It is also possible to reference multiple JIRA issues if the test is verifying multiple ones: + * + *

+ *    @FixFor({"DBZ-123","DBZ-456"})
+ *    @Test
+ *    public void shouldVerifyBehavior() {
+ *     ...
+ *    }
+ * 
+ * + *

+ */ +@Documented +@Retention( CLASS ) +@Target( METHOD ) +public @interface FixFor { + /** + * The JIRA issue for which this is a fix. For example, "DBZ-123". + * + * @return the issue + */ + String[] value(); +} diff --git a/debezium-embedded/src/test/java/io/debezium/embedded/AbstractConnectorTest.java b/debezium-embedded/src/test/java/io/debezium/embedded/AbstractConnectorTest.java index 7b065ae17..743d91dd6 100644 --- a/debezium-embedded/src/test/java/io/debezium/embedded/AbstractConnectorTest.java +++ b/debezium-embedded/src/test/java/io/debezium/embedded/AbstractConnectorTest.java @@ -285,6 +285,8 @@ protected int consumeRecords(int numberOfRecords, Consumer recordC + (numberOfRecords - recordsConsumed) + " more)"); print(record); } + } else { + return recordsConsumed; } } return recordsConsumed;