public void TestAzureMaintenanceEventStrings(string message, AzureNotificationType expectedEventType, string expectedStart, bool expectedIsReplica, string expectedIP, int expectedSSLPort, int expectedNonSSLPort)
        {
            DateTime?expectedStartTimeUtc = null;

            if (expectedStart != null && DateTime.TryParseExact(expectedStart, "s", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out DateTime startTimeUtc))
            {
                expectedStartTimeUtc = DateTime.SpecifyKind(startTimeUtc, DateTimeKind.Utc);
            }
            IPAddress.TryParse(expectedIP, out IPAddress expectedIPAddress);

            var azureMaintenance = new AzureMaintenanceEvent(message);

            Assert.Equal(expectedEventType, azureMaintenance.NotificationType);
            Assert.Equal(expectedStartTimeUtc, azureMaintenance.StartTimeUtc);
            Assert.Equal(expectedIsReplica, azureMaintenance.IsReplica);
            Assert.Equal(expectedIPAddress, azureMaintenance.IPAddress);
            Assert.Equal(expectedSSLPort, azureMaintenance.SslPort);
            Assert.Equal(expectedNonSSLPort, azureMaintenance.NonSslPort);
        }
 /// <inheritdoc/>
 public override Task AfterConnectAsync(ConnectionMultiplexer muxer, Action <string> log)
 => AzureMaintenanceEvent.AddListenerAsync(muxer, log);