ClusterMaintNotificationsTlsIT.java

package redis.clients.jedis.scenario;

import java.util.stream.Stream;

import com.redis.test.fi.ScenarioKey;
import com.redis.test.fi.SlotMigrateEffect;

import org.junit.jupiter.api.Tag;

/**
 * S6: the end-to-end migration check of {@link ClusterMaintNotificationsIT} over {@code rediss://},
 * with the truststore pinned to the chain the database presents and default hostname verification.
 * The one row is remove-add / migrate on the hostname variant: Case 2 is where TLS can differ from
 * plaintext (a new pool handshakes to a node the client never connected to, under the open gate),
 * and the FQDN in SMIGRATED is what the certificate is verified against. Every S1 to S3 and S10
 * observation of the parent applies unchanged.
 * <p>
 * JUnit resolves {@code @MethodSource} against the executing test class, so the factory method here
 * replaces the parent's rows while the inherited {@code migrationIsHandled} runs as is.
 */
@Tag("scenario")
public class ClusterMaintNotificationsTlsIT extends ClusterMaintNotificationsIT {

  static Stream<ScenarioKey> effectTriggerCombinations() {
    return Stream
        .of(ScenarioKey.of(SlotMigrateEffect.REMOVE_ADD, "migrate", "external/hostname+tls"));
  }
}