Run the tests alwyas in thr same order to make it more easy to debug
failures. If needed, the order can be changed (e.g. to `random`) by
overriding propeperty `runOrder`.
`RedisSchemaHistoryIT` tests are not reliable as
`testDatabaseHistoryIsSaved` makes assumption about the number of
entries in the database history stream, while
`testRedisConnectionRetry` deletes whole stream at the beginning of
the test. If `testDatabaseHistoryIsSaved` is executed after
`testRedisConnectionRetry`, `testDatabaseHistoryIsSaved` starts to fail.
Don't delete the stream in `testRedisConnectionRetry` and introduce
constant with initial number of entries in the schema history stream.
Example output after the failure:
$ ./run.sh
Failed to load mandatory config value 'debezium.sink.type'. Please check you have correct Debezium server config in /home/vjuranek/tmp/debezium-server/conf/application.properties or required properties are defined via system or environment variables.
{"timestamp":"2022-08-08T13:37:35.848+02:00","sequence":155,"loggerClassName":"org.jboss.logging.Logger","loggerName":"io.quarkus.runtime.Application","level":"ERROR","message":"Failed to start application (with profile prod)","threadName":"main","threadId":1,"mdc":{},"ndc":"","hostName":"fedora","processName":"io.debezium.server.Main","processId":1048188,"exception":{"refId":1,"exceptionType":"java.util.NoSuchElementException","message":"SRCFG00014: The config property debezium.sink.type is required but it could not be found in any config source","frames":[{"class":"io.smallrye.config.SmallRyeConfig","method":"convertValue","line":282},{"class":"io.smallrye.config.SmallRyeConfig","method":"getValue","line":239},{"class":"io.smallrye.config.SmallRyeConfig","method":"getValue","line":167},{"class":"io.debezium.server.DebeziumServer","method":"start","line":104},{"class":"io.debezium.server.DebeziumServer_Bean","method":"create"},{"class":"io.debezium.server.DebeziumServer_Bean","method":"create"},{"class":"io.quarkus.arc.impl.AbstractSharedContext","method":"createInstanceHandle","line":111},{"class":"io.quarkus.arc.impl.AbstractSharedContext$1","method":"get","line":35},{"class":"io.quarkus.arc.impl.AbstractSharedContext$1","method":"get","line":32},{"class":"io.quarkus.arc.impl.LazyValue","method":"get","line":26},{"class":"io.quarkus.arc.impl.ComputingCache","method":"computeIfAbsent","line":69},{"class":"io.quarkus.arc.impl.AbstractSharedContext","method":"get","line":32},{"class":"io.quarkus.arc.impl.ClientProxies","method":"getApplicationScopedDelegate","line":19},{"class":"io.debezium.server.DebeziumServer_ClientProxy","method":"arc$delegate"},{"class":"io.debezium.server.DebeziumServer_ClientProxy","method":"arc_contextualInstance"},{"class":"io.debezium.server.DebeziumServer_Observer_Synthetic_d70cd75bf32ab6598217b9a64a8473d65e248c05","method":"notify"},{"class":"io.quarkus.arc.impl.EventImpl$Notifier","method":"notifyObservers","line":323},{"class":"io.quarkus.arc.impl.EventImpl$Notifier","method":"notify","line":305},{"class":"io.quarkus.arc.impl.EventImpl","method":"fire","line":73},{"class":"io.quarkus.arc.runtime.ArcRecorder","method":"fireLifecycleEvent","line":130},{"class":"io.quarkus.arc.runtime.ArcRecorder","method":"handleLifecycleEvents","line":99},{"class":"io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294","method":"deploy_0"},{"class":"io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294","method":"deploy"},{"class":"io.quarkus.runner.ApplicationImpl","method":"doStart"},{"class":"io.quarkus.runtime.Application","method":"start","line":101},{"class":"io.quarkus.runtime.ApplicationLifecycleManager","method":"run","line":103},{"class":"io.quarkus.runtime.Quarkus","method":"run","line":67},{"class":"io.quarkus.runtime.Quarkus","method":"run","line":41},{"class":"io.quarkus.runtime.Quarkus","method":"run","line":120},{"class":"io.debezium.server.Main","method":"main","line":15}]}}
In existing test we added all events in the loop which can lead into
adding one event multiple times and therefore failing the tests.
When test run alone, this probably never happen or it was very rare.
Now, when test runs with Debezium server already running, it fails more
often. Fix it by removing already added events from WireMock.