public GetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper output)
        {
            ServiceManagemenet.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagemenet.Common.Models.XunitTracingInterceptor(output));
            insightsDiagnosticsOperationsMock = new Mock <IServiceDiagnosticSettingsOperations>();
            insightsManagementClientMock      = new Mock <InsightsManagementClient>();
            commandRuntimeMock = new Mock <ICommandRuntime>();
            cmdlet             = new GetAzureRmDiagnosticSettingCommand()
            {
                CommandRuntime           = commandRuntimeMock.Object,
                InsightsManagementClient = insightsManagementClientMock.Object
            };

            response = new ServiceDiagnosticSettingsGetResponse
            {
                RequestId  = Guid.NewGuid().ToString(),
                StatusCode = HttpStatusCode.OK,
                Properties = new ServiceDiagnosticSettings
                {
                    StorageAccountId = "/subscriptions/123/resourcegroups/rg/providers/microsoft.storage/accounts/myaccount",
                    Logs             = new List <LogSettings>
                    {
                        new LogSettings
                        {
                            Category = "TestCategory1",
                            Enabled  = true
                        },
                        new LogSettings
                        {
                            Category = "TestCategory2",
                            Enabled  = false
                        }
                    },
                    Metrics = new List <MetricSettings>
                    {
                        new MetricSettings
                        {
                            TimeGrain = TimeSpan.FromMinutes(1),
                            Enabled   = false
                        },
                        new MetricSettings
                        {
                            TimeGrain = TimeSpan.FromHours(1)
                        }
                    }
                }
            };

            insightsDiagnosticsOperationsMock.Setup(f => f.GetAsync(It.IsAny <string>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <ServiceDiagnosticSettingsGetResponse>(response))
            .Callback((string resourceId, CancellationToken cancellationToken) =>
            {
                this.calledResourceId = resourceId;
            });

            insightsManagementClientMock.SetupGet(f => f.ServiceDiagnosticSettingsOperations).Returns(this.insightsDiagnosticsOperationsMock.Object);
        }
        public GetDiagnosticSettingCommandTests(Xunit.Abstractions.ITestOutputHelper output)
        {
            ServiceManagemenet.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagemenet.Common.Models.XunitTracingInterceptor(output));
            insightsDiagnosticsOperationsMock = new Mock <IDiagnosticSettingsOperations>();
            insightsManagementClientMock      = new Mock <MonitorManagementClient>();
            commandRuntimeMock = new Mock <ICommandRuntime>();
            cmdlet             = new GetAzureRmDiagnosticSettingCommand()
            {
                CommandRuntime          = commandRuntimeMock.Object,
                MonitorManagementClient = insightsManagementClientMock.Object
            };

            response = new Microsoft.Rest.Azure.AzureOperationResponse <DiagnosticSettingsResource>()
            {
                Body = new DiagnosticSettingsResource
                {
                    EventHubName = "",
                    EventHubAuthorizationRuleId = "",
                    StorageAccountId            = "/subscriptions/123/resourcegroups/rg/providers/microsoft.storage/accounts/myaccount",
                    WorkspaceId = "",
                    Logs        = new List <LogSettings>
                    {
                        new LogSettings
                        {
                            RetentionPolicy = new RetentionPolicy()
                            {
                                Days    = 10,
                                Enabled = true
                            },
                            Category = "TestCategory1",
                            Enabled  = true
                        },
                        new LogSettings
                        {
                            RetentionPolicy = new RetentionPolicy()
                            {
                                Days    = 5,
                                Enabled = false
                            },
                            Category = "TestCategory2",
                            Enabled  = false
                        }
                    },
                    Metrics = new List <MetricSettings>
                    {
                        new MetricSettings
                        {
                            Category        = "MetricCat1",
                            RetentionPolicy = new RetentionPolicy()
                            {
                                Days    = 7,
                                Enabled = false
                            },
                            TimeGrain = TimeSpan.FromMinutes(1),
                            Enabled   = false
                        },
                        new MetricSettings
                        {
                            Category        = "MetricCat2",
                            RetentionPolicy = new RetentionPolicy()
                            {
                                Days    = 3,
                                Enabled = true
                            },
                            TimeGrain = TimeSpan.FromHours(1)
                        }
                    }
                }
            };

            insightsDiagnosticsOperationsMock.Setup(f => f.GetWithHttpMessagesAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Dictionary <string, List <string> > >(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <Microsoft.Rest.Azure.AzureOperationResponse <DiagnosticSettingsResource> >(response))
            .Callback((string resourceId, string name, Dictionary <string, List <string> > headers, CancellationToken cancellationToken) =>
            {
                this.calledResourceId      = resourceId;
                this.diagnosticSettingName = name;
            });

            insightsManagementClientMock.SetupGet(f => f.DiagnosticSettings).Returns(this.insightsDiagnosticsOperationsMock.Object);
        }