public QualityOfServiceViewModel GetServiceQualityIndicators() { var model = BestInServiceMapper.ToQualityOfServiceReportModel(ReportingService, RequestService.GetTimezoneOffset(this.Request)); var service = new BestInServiceReportingService(SqlRepo); model.SampleRange = new LookingGlassInformation(service.GetSampleRange(RequestService.GetTimezoneOffset(this.Request))).SampleRange; return(model); }
public void ToQualityOfServiceReportModel() { //Arrange var scores = new List <QualityOfServiceModel> { new QualityOfServiceModel { ServerName = "Server 1", ServerArtifactId = 1, OverallScore = 83, WeeklyScore = 86, UserExperienceScore = 98, SystemLoadScore = 64, IntegrityScore = 81, UptimeScore = 89, WeeklyUserExperienceScore = 100, WeeklySystemLoadScore = 52, WeeklyIntegrityScore = 98, WeeklyUptimeScore = 95 } }; var worstUptime = (new List <WorstUptimeDaysModel> { new WorstUptimeDaysModel { HoursDown = 3, ScoreDate = new DateTime(2015, 5, 1, 0, 0, 0), }, new WorstUptimeDaysModel { HoursDown = 5, ScoreDate = new DateTime(2015, 6, 1, 0, 0, 0) } }).AsQueryable(); var uptimePct = new UptimePercentageInfo { QuarterlyUptimePercent = 92.95, WeeklyUptimePercent = 89.33 }; var integrity = new MissedBackupIntegrityInfo() { MissedIntegrityChecks = 1, MissedBackups = 1, BackupCoverageScore = 95, BackupFrequencyScore = 94, DbccCoverageScore = 93, DbccFrequencyScore = 92, MaxDataLossMinutes = 120, TimeToRecoverHours = 24, RPOScore = 90, RTOScore = 80 }; var service = new Mock <BestInServiceReportingService>(); service.Setup(x => x.GetQualityOfServiceScores(It.IsAny <int>())).Returns(scores); service.Setup(x => x.ListWorstUptimeDays(0)).Returns(worstUptime); service.Setup(x => x.SummarizeBackupIntegrityInfo()).Returns(integrity); service.Setup(x => x.CalculateUptimePercentages()).Returns(uptimePct); //Act var model = BestInServiceMapper.ToQualityOfServiceReportModel(service.Object, 0); //Assert Assert.AreEqual(83, model.OverallScore, "Incorrect quarterly score"); Assert.AreEqual(86, model.WeeklyScore, "Incorrect weekly score"); Assert.AreEqual(98, model.UserExperience.QuarterlyScore, "Incorrect quarterly user experience score"); Assert.AreEqual(64, model.SystemLoad.QuarterlyScore, "Incorrect quarterly system load score"); Assert.AreEqual(81, model.Backup.Score, "Incorrect quarterly backup score"); Assert.AreEqual(89, model.Uptime.Score, "Incorrect quarterly uptime score"); Assert.AreEqual(100, model.UserExperience.WeeklyScore, "Incorrect weekly user experience score"); Assert.AreEqual(52, model.SystemLoad.WeeklyScore, "Incorrect weekly system load score"); Assert.AreEqual(94, model.Backup.BackupFrequencyScore, "Incorrect backup frequency score"); Assert.AreEqual(95, model.Backup.BackupCoverageScore, "Incorrect backup coverage score"); Assert.AreEqual(92, model.Backup.DbccFrequencyScore, "Incorrect DBCC frequency score"); Assert.AreEqual(93, model.Backup.DbccCoverageScore, "Incorrect DBCC coverage score"); Assert.AreEqual(80, model.Backup.RTOScore, "Incorrect RTO score"); Assert.AreEqual(90, model.Backup.RPOScore, "Incorrect RPO Score"); Assert.AreEqual(95, model.Uptime.WeeklyScore, "Incorrect weekly uptime score"); Assert.AreEqual(1, model.UserExperience.Servers.Count(), "Incorrect number of user experience servers"); Assert.AreEqual(98, model.UserExperience.Servers.First().QuarterlyScore, "Incorrect score for first user experience server"); Assert.AreEqual(1, model.SystemLoad.Servers.Count(), "Incorrect number of system load servers"); Assert.AreEqual(64, model.SystemLoad.Servers.First().QuarterlyScore, "Incorrect score for first system load date"); Assert.AreEqual(1, model.Backup.MissedBackups, "Incorrect number of missed backups"); Assert.AreEqual(1, model.Backup.MissedIntegrityChecks, "Incorrect number of missed DBCC checks"); Assert.AreEqual(24, model.Backup.TimeToRecoverHours, "Incorrect time to recover"); Assert.AreEqual(120, model.Backup.MaxDataLossMinutes, "Incorrect data loss"); Assert.AreEqual(9, model.BackupWindow, "Incorrect backup window"); Assert.AreEqual(2, model.Uptime.DatesToReview.Count(), "Incorrect number of uptime dates"); Assert.AreEqual(3, model.Uptime.DatesToReview.First().HoursDown, "Incorrect count of hours down for first uptime grouping"); Assert.AreEqual("92.95", model.Uptime.UptimePercentage.ToString("N2"), "Incorrect quarterly uptime percentage"); Assert.AreEqual("89.33", model.Uptime.WeeklyUptimePercentage.ToString("N2"), "Incorrect weekly uptime percentage"); }
public void GetServiceIndicators_Test() { // Arrange var model = new QualityOfServiceViewModel { OverallScore = 83, WeeklyScore = 52, UserExperience = new ServerDetailCategory { QuarterlyScore = 80, WeeklyScore = 80, Servers = new List <ServerScore> { new ServerScore { ArtifactId = 1, Name = "Server 1", QuarterlyScore = 64, WeeklyScore = 64 } } }, SystemLoad = new ServerDetailCategory { QuarterlyScore = 64, WeeklyScore = 64, Servers = new List <ServerScore> { new ServerScore { ArtifactId = 1, Name = "Server 1", QuarterlyScore = 64, WeeklyScore = 64 } } }, Backup = new MaintenanceCategory { Score = 64, BackupCoverageScore = 68, BackupFrequencyScore = 72, DbccCoverageScore = 60, DbccFrequencyScore = 72, MissedBackups = 1, MissedIntegrityChecks = 1 }, Uptime = new AvailabilityCategory { Score = 79, UptimePercentage = 85.0, DatesToReview = new List <DateToReview> { new DateToReview { Date = DateTime.Now.ToShortDateString(), HoursDown = 50 } } } }; var bis = new Mock <BestInServiceReportingService>(); var mapper = new Mock <BestInServiceMapper>(); mapper.Setup(service => BestInServiceMapper.ToQualityOfServiceReportModel(bis.Object, 0)).Returns(model); // Act var serviceController = new ServiceQualityController(); var indicators = serviceController.GetServiceQualityIndicators(); // Assert Assert.AreEqual(80, indicators.UserExperience.QuarterlyScore); }