public async Task ValidationShouldBeExecutedOnce() { //Arrange var path = @"c:\"; var diskDriveConfig = new DiskDriveConfigBuilder() .WithEnabled(true) .WithPartitions(new List <DiskDriveConfig.Partition>() { new DiskDriveConfig.Partition() { Path = path } }) .Build(); var appConfig = new AppConfigBuilder() .WithDiskDrive(diskDriveConfig) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); var service = this.Context.Build(); //Act await service.ValidateAsync(); //Assert this.Context.DiskDriveConfigValidatorMock.Verify_ValidateCalled(x => x.Enabled == true && x.Partitions.First().Path == path, Times.Once()); }
public async Task WhenNoPartitionsProvided_ShouldRunWithoutDoingAnything() { //Arrange var diskDriveConfig = new DiskDriveConfigBuilder() .WithEnabled(true) .WithPartitions(new List <DiskDriveConfig.Partition>() { }) .Build(); var appConfig = new AppConfigBuilder() .WithDiskDrive(diskDriveConfig) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); var service = this.Context.Build(); //Act await service.DoWorkAsync(); //Assert this.Context.DiskDriveInfoMock.Verify_GetDiskDriveMetricsCalled(Times.Never()); this.Context.MessageConverterMock.Verify_GetCalledForDiskDriveMetrics(Times.Never()); this.Context.MessageQueueServiceMock.Verify_EnqueueCalled(Times.Never()); }
public void WhenNoMessageReturned_ShouldNotEnqueue() { //Arrange var maxPercentageUsage = 30; var total = 100; var free = 30; var memoryConfig = new MemoryConfigBuilder() .WithEnabled(true) .WithMaxPercentageUsage(maxPercentageUsage) .Build(); var appConfig = new AppConfigBuilder() .WithMemory(memoryConfig) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); var memoryMetrics = new MemoryMetricsBuilder() .WithTotal(total) .WithFree(free) .Build(); this.Context.MemoryInfoMock.Mock_GetMemoryMetrics(memoryMetrics); this.Context.MessageConverterMock.Mock_Get((Expression <Func <MemoryMetrics, bool> >)(x => x.Total == total && x.Free == free), null); var service = this.Context.Build(); //Act service.DoWorkAsync(); //Assert this.Context.MemoryInfoMock.Verify_GetMemoryMetricsCalled(Times.Once()); this.Context.MessageConverterMock.Verify_GetCalled((Expression <Func <MemoryMetrics, bool> >)(x => x.Total == total && x.Free == free), Times.Once()); this.Context.MessageQueueServiceMock.Verify_EnqueueCalled(Times.Never()); }
public async Task WhenMemoryMetricsWithAppConfigProvidedWithoutReportModeWithoutWarningWithoutTest_ShouldReturnNull() { //Arrange var memoryConfig = new MemoryConfigBuilder() .WithMaxPercentageUsage(90) .WithReportMode(false) .Build(); var config = new AppConfigBuilder() .WithMemory(memoryConfig) .Build(); var converter = this.Context .WithAppConfig(config) .Build(); var memoryMetrics = new MemoryMetricsBuilder() .WithTotal(10) .WithFree(10) .Build(); //Act var message = await converter.GetAsync(memoryMetrics); //Assert Assert.IsNull(message); }
public async Task WhenMemoryMetricsWithAppConfigProvidedWithReportMode_ShouldReturnMessage() { //Arrange var memoryConfig = new MemoryConfigBuilder() .WithMaxPercentageUsage(90) .WithReportMode(true) .Build(); var config = new AppConfigBuilder() .WithMemory(memoryConfig) .Build(); var converter = this.Context .WithAppConfig(config) .Build(); var memoryMetrics = new MemoryMetricsBuilder() .WithTotal(10) .WithFree(10) .Build(); //Act var message = await converter.GetAsync(memoryMetrics); //Assert Assert.AreEqual("RAM Memory", message.Title); Assert.AreEqual("Total: 10B\r\nUsed: 0B\r\nFree: 10B", message.Content); }
public async Task ValidationShouldBeExecutedOnce() { //Arrange var from = "from"; var limit = 5; var display = "display"; var messageNotification = new MessageNotificationConfigBuilder() .WithEnabled(true) .WithFrom(from) .WithLimit(limit) .WithDisplay(display) .Build(); var appConfig = new AppConfigBuilder() .WithMessageNotification(messageNotification) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); var service = this.Context.Build(); //Act await service.ValidateAsync(); //Assert this.Context.MessageNotificationValidatorMock.Verify_ValidateCalled(x => x.Enabled == true && x.From == from && x.Limit == limit && x.Display == display, Times.Once()); }
public async Task WhenNoMessages_ShouldNotSend() { //Arrange var from = "from"; var limit = 5; var display = "display"; var messageNotification = new MessageNotificationConfigBuilder() .WithEnabled(true) .WithFrom(from) .WithLimit(limit) .WithDisplay(display) .Build(); var appConfig = new AppConfigBuilder() .WithMessageNotification(messageNotification) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); this.Context.MessageQueueServiceMock.Mock_Dequeue(null); var service = this.Context.Build(); //Act await service.DoWorkAsync(); //Assert this.Context.MessageQueueServiceMock.Verify_DequeueCalled(Times.Once()); this.Context.MessageSenderMock.Veirfy_SendMessageCalled(Times.Never()); }
public async Task WhenMemoryMetricsWithAppConfigProvidedWithWarning_ShouldReturnMessage() { //Arrange var memoryConfig = new MemoryConfigBuilder() .WithMaxPercentageUsage(10) .Build(); var config = new AppConfigBuilder() .WithMemory(memoryConfig) .Build(); var converter = this.Context .WithAppConfig(config) .Build(); var memoryMetrics = new MemoryMetricsBuilder() .WithTotal(100) .WithFree(30) .Build(); //Act var message = await converter.GetAsync(memoryMetrics); //Assert Assert.AreEqual("Warning - RAM Memory", message.Title); Assert.AreEqual("RAM memory 70% consumed!\r\n\r\n\r\nTotal: 100B\r\nUsed: 70B\r\nFree: 30B", message.Content); }
public void AllowMultipleRegistrations_WhenTrue_AMethodCanBeRegisteredMultipleTimes() { var appConfig = new AppConfigBuilder(new AppSettings()) .UseMiddleware(Middleware1, MiddlewareStages.Tokenize, allowMultipleRegistrations: true) .UseMiddleware(Middleware1, MiddlewareStages.Tokenize, allowMultipleRegistrations: true) .Build(); appConfig.Should().NotBeNull(); }
private static void EnsureResourcesAreSet(AppRunner appRunner, AppConfigBuilder c) { if (appRunner.AppSettings.Localize != null) { var config = c.Services.GetOrCreate <SpectreAppConfig>(); if (!config.ResourcesSet) { Resources.A = new ResourcesProxy(appRunner.AppSettings.Localize); config.ResourcesSet = true; } } }
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()); }
public async Task WhenMessageWithAppConfigProvided_ShouldReturnMimeMessage() { //Arrange var title = "title"; var content = "content"; var from = "*****@*****.**"; var display = "FromDisplay"; var to = "*****@*****.**"; var messageNotificationConfig = new MessageNotificationConfigBuilder() .WithFrom(from) .WithDisplay(display) .WithMessageRecipients(new List <MessageRecipient>() { new MessageRecipient { Address = to } }) .Build(); var config = new AppConfigBuilder() .WithMessageNotification(messageNotificationConfig) .Build(); var converter = this.Context .WithAppConfig(config) .Build(); var message = new MessageBuilder() .WithTitle(title) .WithContent(content) .Build(); //Act var mimeMessage = await converter.GetAsync(message); //Assert Assert.Multiple(() => { Assert.AreEqual(title, mimeMessage.Subject); Assert.AreEqual(content, mimeMessage.TextBody); Assert.AreEqual(from, (mimeMessage.From.First() as MailboxAddress).Address); Assert.AreEqual(display, (mimeMessage.From.First() as MailboxAddress).Name); Assert.AreEqual(to, (mimeMessage.To.First() as MailboxAddress).Address); }); }
public async Task WhenMessageReturned_ShouldEnqueue() { //Arrange var maxPercentageUsage = 30; var total = 100; var free = 30; var memoryConfig = new MemoryConfigBuilder() .WithEnabled(true) .WithMaxPercentageUsage(maxPercentageUsage) .Build(); var appConfig = new AppConfigBuilder() .WithMemory(memoryConfig) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); var memoryMetrics = new MemoryMetricsBuilder() .WithTotal(total) .WithFree(free) .Build(); this.Context.MemoryInfoMock.Mock_GetMemoryMetrics(memoryMetrics); var title = "title"; var content = "content"; var message = new MessageBuilder() .WithTitle(title) .WithContent(content) .Build(); this.Context.MessageConverterMock.Mock_Get((Expression <Func <MemoryMetrics, bool> >)(x => x.Total == total && x.Free == free), message); var service = this.Context.Build(); //Act await service.DoWorkAsync(); //Assert this.Context.MemoryInfoMock.Verify_GetMemoryMetricsCalled(Times.Once()); this.Context.MessageConverterMock.Verify_GetCalled((Expression <Func <MemoryMetrics, bool> >)(x => x.Total == total && x.Free == free), Times.Once()); this.Context.MessageQueueServiceMock.Verify_EnqueueCalled(x => x.Title == title && x.Content == content, Times.Once()); }
public void ValidationShouldBeExecutedOnce() { //Arrange var maxPercentageUsage = 30; var memoryConfig = new MemoryConfigBuilder() .WithEnabled(true) .WithMaxPercentageUsage(maxPercentageUsage) .Build(); var appConfig = new AppConfigBuilder() .WithMemory(memoryConfig) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); var service = this.Context.Build(); //Act service.ValidateAsync(); //Assert this.Context.MemoryConfigValidatorMock.Verify_ValidateCalled(x => x.Enabled == true && x.MaxPercentageUsage == maxPercentageUsage, Times.Once()); }
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); }
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); }
public async Task WhenMessages_ShouldSend() { //Arrange string title = "title"; string content = "content"; var from = "from"; var limit = 5; var display = "display"; var messageNotification = new MessageNotificationConfigBuilder() .WithEnabled(true) .WithFrom(from) .WithLimit(limit) .WithDisplay(display) .Build(); var appConfig = new AppConfigBuilder() .WithMessageNotification(messageNotification) .Build(); this.Context.ConfigMock.Mock_Config(appConfig); var message = new MessageBuilder() .WithTitle(title) .WithContent(content) .Build(); this.Context.MessageQueueServiceMock.Mock_Dequeue(message); var service = this.Context.Build(); //Act await service.DoWorkAsync(); //Assert this.Context.MessageQueueServiceMock.Verify_DequeueCalled(Times.Exactly(limit)); this.Context.MessageSenderMock.Verify_SendMessageCalled(x => x.Title == title && x.Content == content, Times.Exactly(limit)); }
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); }