internal void GenericEnableDisableServiceMetrics(ServiceType serviceType, GetMetricsProperty <ServiceProperties> getServiceProperties) { Test.Info("Enable/Disable service hour metrics for {0}", serviceType); int retentionDays = 10; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, MetricsLevel.Service.ToString(), retentionDays.ToString(), string.Empty), "Enable service hour metrics should succeed"); ServiceProperties retrievedProperties; retrievedProperties = getServiceProperties(Constants.MetricsType.Hour, retentionDays, MetricsLevel.Service.ToString()); ExpectEqual(retentionDays, retrievedProperties.HourMetrics.RetentionDays.Value, "metrics retention days"); retentionDays = lang == Language.PowerShell ? -1 : 0; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, MetricsLevel.Service.ToString(), retentionDays.ToString(), string.Empty), "Disable blob service hour metrics should succeed"); retrievedProperties = getServiceProperties(Constants.MetricsType.Hour, retentionDays, MetricsLevel.Service.ToString()); Test.Assert(!retrievedProperties.HourMetrics.RetentionDays.HasValue, "service hour metrics retention days should be null"); Test.Info("Enable/Disable service minute metrics for {0}", serviceType); retentionDays = 10; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, MetricsLevel.ServiceAndApi.ToString(), retentionDays.ToString(), string.Empty), "Enable service minute metrics should succeed"); retrievedProperties = getServiceProperties(Constants.MetricsType.Minute, retentionDays, MetricsLevel.ServiceAndApi.ToString()); ExpectEqual(retentionDays, retrievedProperties.MinuteMetrics.RetentionDays.Value, "metrics retention days"); retentionDays = lang == Language.PowerShell ? -1 : 0; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, MetricsLevel.ServiceAndApi.ToString(), retentionDays.ToString(), string.Empty), "Disable blob service minute metrics should succeed"); retrievedProperties = getServiceProperties(Constants.MetricsType.Minute, retentionDays, MetricsLevel.ServiceAndApi.ToString()); Test.Assert(!retrievedProperties.MinuteMetrics.RetentionDays.HasValue, "service minute metrics retention days should be null"); }
internal void GenericSetLoggingVersion(ServiceType serviceType, Func <ServiceProperties> getServiceProperties) { Test.Info("Enable/Disable service logging for {0}", serviceType); //Actually, it's the the only one valid version. double version = 1.0; Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, string.Empty, version.ToString()), "Set service logging version should succeed"); ServiceProperties retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.Logging.Version), "Logging version"); double invalidVersion = -1 * Utility.GetRandomTestCount(); Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service logging version should fail"); ExpectedContainErrorMessage("The remote server returned an error"); retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.Logging.Version), "Logging version"); //Make sure the invalid verion less than 1, otherwise we don't know whether the version is valid in the future. invalidVersion = 0.1 * Utility.GetRandomTestCount(); Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service logging version should fail"); ExpectedContainErrorMessage("The remote server returned an error"); retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.Logging.Version), "Logging version"); }
internal void GenericSetInvalidMetricsOperation(ServiceType serviceType, Func <ServiceProperties> getServiceProperties) { Test.Info("Set invalid service metrics operation for {0}", serviceType); string operation = "all"; ExpectInvalidMetricsOperation(serviceType, operation, getServiceProperties); operation = "xxx"; ExpectInvalidMetricsOperation(serviceType, operation, getServiceProperties, true); }
internal void GenericSetMetricsOperation(ServiceType serviceType, GetMetricsProperty <ServiceProperties> getServiceProperties) { Test.Info("Set service metrics operation for {0}", serviceType); string[] operations = { "None", "Service", "ServiceAndApi" }; foreach (string op in operations) { ExpectValidmetricsOperation(serviceType, op, getServiceProperties); } }
internal void ExpectValidLoggingOperation(ServiceType serviceType, string operations, GetLoggingProperty <ServiceProperties> getServiceProperties) { int retentionDays = Utility.GetRandomTestCount(1, 365 + 1); Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, operations, retentionDays.ToString(), string.Empty), "Set logging operation should succeed"); ServiceProperties retrievedProperties = getServiceProperties(retentionDays, operations); LoggingOperations expectOperation = (LoggingOperations)Enum.Parse(typeof(LoggingOperations), operations, true); bool?read = (expectOperation & LoggingOperations.Read) != 0; bool?write = (expectOperation & LoggingOperations.Write) != 0; bool?delete = (expectOperation & LoggingOperations.Delete) != 0; Utility.ValidateLoggingOperationProperty(operations, read, write, delete); }
internal void GenericEnableDisableServiceLogging(ServiceType serviceType, GetLoggingProperty <ServiceProperties> getServiceProperties) { Test.Info("Enable/Disable service logging for {0}", serviceType); int retentionDays = 10; Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Enable service logging should succeed"); ServiceProperties retrievedProperties; retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString()); ExpectEqual(retentionDays, retrievedProperties.Logging.RetentionDays.Value, "logging retention days"); retentionDays = lang == Language.PowerShell ? -1 : 0; Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Enable blob service logging should succeed"); retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString()); Test.Assert(!retrievedProperties.Logging.RetentionDays.HasValue, "service logging retention days should be null"); }
internal void GenericSetMetricsVersion(ServiceType serviceType, Func <ServiceProperties> getServiceProperties) { Test.Info("Enable/Disable service hour metrics for {0}", serviceType); double version = 1.0; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, string.Empty, version.ToString()), "Set service hour metrics version should succeed"); ServiceProperties retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.HourMetrics.Version), "metrics version"); double invalidVersion = -1.0 * Utility.GetRandomTestCount(); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service hour metrics version should fail"); ExpectedContainErrorMessage("The remote server returned an error"); retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.HourMetrics.Version), "metrics version"); //Make sure the invalid verion less than 1, otherwise we don't know whether the version is valid in the future. invalidVersion = 0.1 * Utility.GetRandomTestCount(); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service hour metrics version should fail"); ExpectedContainErrorMessage("The remote server returned an error"); retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.HourMetrics.Version), "metrics version"); Test.Info("Enable/Disable service minute metrics for {0}", serviceType); version = 1.0; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, string.Empty, version.ToString()), "Set service minute metrics version should succeed"); retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.MinuteMetrics.Version), "metrics version"); invalidVersion = -1.0 * Utility.GetRandomTestCount(); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service minute metrics version should fail"); ExpectedContainErrorMessage("The remote server returned an error"); retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.MinuteMetrics.Version), "metrics version"); //Make sure the invalid verion less than 1, otherwise we don't know whether the version is valid in the future. invalidVersion = 0.1 * Utility.GetRandomTestCount(); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, string.Empty, invalidVersion.ToString()), "Set invalid service minute metrics version should fail"); ExpectedContainErrorMessage("The remote server returned an error"); retrievedProperties = getServiceProperties(); ExpectEqual(version, Convert.ToDouble(retrievedProperties.MinuteMetrics.Version), "metrics version"); }
internal void ExpectInvalidMetricsOperation(ServiceType serviceType, string operations, Func <ServiceProperties> getServiceProperties, bool invalidEnum = false) { int retentionDays = 1; if (lang == Language.PowerShell) { Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, operations, retentionDays.ToString(), string.Empty), "Set invalid hour metrics operation should fail"); ExpectedContainErrorMessage("Cannot bind parameter 'MetricsLevel'. Cannot convert value"); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, operations, retentionDays.ToString(), string.Empty), "Set invalid minute metrics operation should fail"); ExpectedContainErrorMessage("Cannot bind parameter 'MetricsLevel'. Cannot convert value"); } else { Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, operations, retentionDays.ToString(), string.Empty), "Set any value with hour metrics switch operation should succeed"); Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, operations, retentionDays.ToString(), string.Empty), "Set any value with minute metrics operation should succeed"); } }
internal void GenericSetLoggingRetentionDays(ServiceType serviceType, GetLoggingProperty <ServiceProperties> getServiceProperties) { Test.Info("Set service logging retention days for {0}", serviceType); // valid values for RetentionDay int retentionDays = Utility.GetRandomTestCount(1, 365 + 1); Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days should succeed"); ServiceProperties retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString()); ExpectEqual(retentionDays, retrievedProperties.Logging.RetentionDays.Value, "Logging retention days"); if (lang == Language.PowerShell) { retentionDays = -1; Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days should succeed"); retrievedProperties = getServiceProperties(retentionDays, LoggingOperations.None.ToString()); Test.Assert(!retrievedProperties.Logging.RetentionDays.HasValue, "Service logging retention days should be null"); // invalid values for RetentionDay retentionDays = 0; Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail"); ExpectedContainErrorMessage("The minimum value of retention days is 1, the largest value is 365 (one year)."); retentionDays = -1 * Utility.GetRandomTestCount(2, 365 + 1); Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail"); ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'"); retentionDays = Utility.GetRandomTestCount(366, 365 + 100); Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail"); ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'"); } else { retentionDays = 0; Test.Assert(CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for 0 retention days should succeed"); retentionDays = Utility.GetRandomTestCount(366, 365 + 100); Test.Assert(!CommandAgent.SetAzureStorageServiceLogging(serviceType, string.Empty, retentionDays.ToString(), string.Empty), "Set service logging retention days for invalid retention days should fail"); string[] errMessages = { "XML specified is not syntactically valid", "Error" }; ExpectedContainErrorMessage(errMessages); } }
internal void GenericSetLoggingOperation(ServiceType serviceType, GetLoggingProperty <ServiceProperties> getServiceProperties) { Test.Info("Set service logging operation for {0}", serviceType); string[] operations = { "None", "All", "Read", "Write", "Delete" }; foreach (string op in operations) { ExpectValidLoggingOperation(serviceType, op, getServiceProperties); } //Random combine string[] combineOperations = { "Read", "Write", "Delete" }; string combination = Utility.GenRandomCombination(combineOperations.ToList(), ","); Test.Info("Generate combined operations {0}", combination); ExpectValidLoggingOperation(serviceType, combination, getServiceProperties); //Test case for case-insesitive, duplicate keys, key order. combination = "Delete,write,deLETE"; Test.Info("Generate combined operations {0}", combination); ExpectValidLoggingOperation(serviceType, combination, getServiceProperties); }
internal void GenericSetInvalidLoggingOperation(ServiceType serviceType, Func <ServiceProperties> getServiceProperties) { Test.Info("Set invalid service logging operation for {0}", serviceType); if (lang == Language.PowerShell) { LoggingOperations[] loggingOperations = { LoggingOperations.All, LoggingOperations.Read }; ExpectInvalidLoggingOperation(serviceType, loggingOperations, getServiceProperties); loggingOperations = new LoggingOperations[] { LoggingOperations.Delete, LoggingOperations.None }; ExpectInvalidLoggingOperation(serviceType, loggingOperations, getServiceProperties); string operation = "delete,xxx"; ExpectInvalidLoggingOperation(serviceType, operation, getServiceProperties, "Cannot bind parameter 'LoggingOperations'. Cannot convert value"); } else { string operation = " --read --read-off "; string expectedError = "--read and --read-off cannot be both defined"; ExpectInvalidLoggingOperation(serviceType, operation, getServiceProperties, expectedError); } }
internal void GenericSetMetricsRetentionDays(ServiceType serviceType, Func <ServiceProperties> getServiceProperties) { Test.Info("Set service metrics retention days for {0}", serviceType); if (lang == Language.PowerShell) { // valid values for RetentionDay int retentionDays = Utility.GetRandomTestCount(1, 365 + 1); Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days should succeed"); ServiceProperties retrievedProperties = getServiceProperties(); ExpectEqual(retentionDays, retrievedProperties.HourMetrics.RetentionDays.Value, "metrics retention days"); retentionDays = -1; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days should succeed"); retrievedProperties = getServiceProperties(); Test.Assert(!retrievedProperties.HourMetrics.RetentionDays.HasValue, "Service metrics retention days should be null"); // valid values for RetentionDay retentionDays = Utility.GetRandomTestCount(1, 365 + 1); Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days should succeed"); retrievedProperties = getServiceProperties(); ExpectEqual(retentionDays, retrievedProperties.MinuteMetrics.RetentionDays.Value, "metrics retention days"); retentionDays = -1; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days should succeed"); retrievedProperties = getServiceProperties(); Test.Assert(!retrievedProperties.MinuteMetrics.RetentionDays.HasValue, "Service metrics retention days should be null"); // invalid values for RetentionDay retentionDays = 0; Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for invalid retention days should fail"); ExpectedContainErrorMessage("The minimum value of retention days is 1, the largest value is 365 (one year)."); retentionDays = -1 * Utility.GetRandomTestCount(2, 365 + 1); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for invalid retention days should fail"); ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'"); retentionDays = Utility.GetRandomTestCount(366, 365 + 100); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for invalid retention days should fail"); ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'"); // invalid values for RetentionDay retentionDays = 0; Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for invalid retention days should fail"); ExpectedContainErrorMessage("The minimum value of retention days is 1, the largest value is 365 (one year)."); retentionDays = -1 * Utility.GetRandomTestCount(2, 365 + 1); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for invalid retention days should fail"); ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'"); retentionDays = Utility.GetRandomTestCount(366, 365 + 100); Test.Assert(!CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for invalid retention days should fail"); ExpectedContainErrorMessage("Cannot validate argument on parameter 'RetentionDays'"); } else { int retentionDays = Utility.GetRandomTestCount(1, 365 + 1); Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days should succeed"); Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days should succeed"); retentionDays = 0; Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Hour, string.Empty, retentionDays.ToString(), string.Empty), "Set service hour metrics retention days for 0 retention days should succeed"); Test.Assert(CommandAgent.SetAzureStorageServiceMetrics(serviceType, Constants.MetricsType.Minute, string.Empty, retentionDays.ToString(), string.Empty), "Set service minute metrics retention days for 0 retention days should succeed"); } }