Пример #1
0
        public async Task WhenPartitionProvided_ShouldQueueMessage()
        {
            //Arrange
            var total = 100;
            var free  = 50;
            var path  = @"c:\";
            var maxPercentageUsage = 10;
            var title   = "title";
            var content = "content";

            var diskDriveConfig = new DiskDriveConfigBuilder()
                                  .WithEnabled(true)
                                  .WithPartitions(new List <DiskDriveConfig.Partition>()
            {
                new DiskDriveConfig.Partition()
                {
                    Path = path, MaxPercentageUsage = maxPercentageUsage
                }
            })
                                  .Build();

            var appConfig = new AppConfigBuilder()
                            .WithDiskDrive(diskDriveConfig)
                            .Build();

            this.Context.ConfigMock.Mock_Config(appConfig);

            var metrics = new DiskDriveMetricsBuilder()
                          .WithPath(path)
                          .WithTotal(total)
                          .WithFree(free)
                          .Build();

            this.Context.DiskDriveInfoMock.Mock_GetDiskDriveMetrics(metrics);

            var message = new MessageBuilder()
                          .WithTitle(title)
                          .WithContent(content)
                          .Build();

            this.Context.MessageConverterMock.Mock_Get((Expression <Func <DiskDriveMetrics, bool> >)(x => x.Path == path && x.Total == total && x.Free == free), message);

            var service = this.Context.Build();

            //Act
            await service.DoWorkAsync();

            //Assert
            this.Context.DiskDriveInfoMock.Verify_GetDiskDriveMetricsCalled(x => x.Path == path && x.MaxPercentageUsage == maxPercentageUsage, Times.Once());
            this.Context.MessageConverterMock.Verify_GetCalled(x => x.Path == path && x.Total == total && x.Free == free, Times.Once());
            this.Context.MessageQueueServiceMock.Verify_EnqueueCalled(x => x.Title == title && x.Content == content, Times.Once());
        }
Пример #2
0
        public async Task WhenDiskDriveMetricsWithAppConfigProvidedWithReportMode_ShouldReturnMessage()
        {
            //Arrange
            string path            = @"c:\";
            var    diskDriveConfig = new DiskDriveConfigBuilder()
                                     .WithPartitions(new List <DiskDriveConfig.Partition>()
            {
                new DiskDriveConfig.Partition()
                {
                    Path = path,
                    MaxPercentageUsage = 10
                }
            })
                                     .WithReportMode(true)
                                     .Build();

            var config = new AppConfigBuilder()
                         .WithDiskDrive(diskDriveConfig)
                         .Build();

            var converter = this.Context
                            .WithAppConfig(config)
                            .Build();

            var diskDriveMetrics = new DiskDriveMetricsBuilder()
                                   .WithPath(path)
                                   .WithIsReady(true)
                                   .WithTotal(10)
                                   .WithFree(10)
                                   .Build();

            //Act
            var message = await converter.GetAsync(diskDriveMetrics);

            //Assert
            Assert.AreEqual($"DiskDrive - {path}", message.Title);
            Assert.AreEqual("Capacity: 10B\r\nFree space: 10B", message.Content);
        }
Пример #3
0
        public async Task WhenDiskDriveMetricsWithNotIsReadyWithAppConfigProvided_ShouldReturnMessage()
        {
            //Arrange
            string path            = @"c:\";
            var    diskDriveConfig = new DiskDriveConfigBuilder()
                                     .WithPartitions(new List <DiskDriveConfig.Partition>()
            {
                new DiskDriveConfig.Partition()
                {
                    Path = path,
                    MaxPercentageUsage = 90
                }
            })
                                     .Build();

            var config = new AppConfigBuilder()
                         .WithDiskDrive(diskDriveConfig)
                         .WithTest(true)
                         .Build();

            var converter = this.Context
                            .WithAppConfig(config)
                            .Build();

            var diskDriveMetrics = new DiskDriveMetricsBuilder()
                                   .WithPath(path)
                                   .WithIsReady(false)
                                   .WithTotal(10)
                                   .WithFree(9)
                                   .Build();

            //Act
            var message = await converter.GetAsync(diskDriveMetrics);

            //Assert
            Assert.AreEqual($"Warning - DiskDrive - {path}", message.Title);
            Assert.AreEqual("Drive c:\\ is not ready!", message.Content);
        }
Пример #4
0
        public async Task WhenDiskDriveMetricsWithAppConfigProvidedWithoutReportModeWithoutWarningWithoutTest_ShouldReturnNull()
        {
            //Arrange
            string path            = @"c:\";
            var    diskDriveConfig = new DiskDriveConfigBuilder()
                                     .WithPartitions(new List <DiskDriveConfig.Partition>()
            {
                new DiskDriveConfig.Partition()
                {
                    Path = path,
                    MaxPercentageUsage = 10
                }
            })
                                     .WithReportMode(false)
                                     .Build();

            var config = new AppConfigBuilder()
                         .WithDiskDrive(diskDriveConfig)
                         .Build();

            var converter = this.Context
                            .WithAppConfig(config)
                            .Build();

            var diskDriveMetrics = new DiskDriveMetricsBuilder()
                                   .WithPath(path)
                                   .WithIsReady(true)
                                   .WithTotal(10)
                                   .WithFree(10)
                                   .Build();

            //Act
            var message = await converter.GetAsync(diskDriveMetrics);

            //Assert
            Assert.IsNull(message);
        }