public async Task UpdateAsync(ServerCleanup serverCleanup) { using (var connection = this.connectionFactory.GetEddsPerformanceConnection()) { await connection.ExecuteAsync(Resources.ServerCleanup_Update, serverCleanup); } }
public async Task <ServerCleanup> CreateAsync(ServerCleanup serverCleanup) { using (var connection = this.connectionFactory.GetEddsPerformanceConnection()) { return(await connection.QueryFirstOrDefaultAsync <ServerCleanup>(Resources.ServerCleanup_Create, serverCleanup)); } }
public async Task SetUp() { this.serverCleanupRepository = new ServerCleanupRepository(TestUtilities.GetIntegrationConnectionFactory()); this.testServerCleanup = new ServerCleanup { HourId = 0, ServerId = 0, Success = true }; this.testServerCleanupResult = await this.serverCleanupRepository.CreateAsync(testServerCleanup); }
public async Task UpdateAsync() { // Arrange var testServerCleanupUpdateResult = new ServerCleanup { Id = testServerCleanupResult.Id, HourId = testServerCleanupResult.HourId, ServerId = testServerCleanupResult.ServerId, Success = !testServerCleanupResult.Success }; // Act await this.serverCleanupRepository.UpdateAsync(testServerCleanupUpdateResult); // Assert var result = await this.serverCleanupRepository.ReadAsync(testServerCleanupUpdateResult.Id); Assert.That(result, Is.Not.Null); Assert.That(result.HourId, Is.EqualTo(testServerCleanupUpdateResult.HourId)); Assert.That(result.ServerId, Is.EqualTo(testServerCleanupUpdateResult.ServerId)); Assert.That(result.Success, Is.EqualTo(testServerCleanupUpdateResult.Success)); }
public async Task CleanupForHour() { // Arrange var hourId = 3; var hour = new Hour { Id = hourId, HourTimeStamp = DateTime.UtcNow }; this.hourRepositoryMock.Setup(m => m.ReadAsync(hourId)).ReturnsAsync(hour); var primaryServer = new Server { ServerId = 1, ArtifactId = 123, ServerName = "SomeServerName", ServerType = ServerType.Database }; var otherServer = new Server { ServerId = 2, ArtifactId = 1234, ServerName = "OtherServer", ServerType = ServerType.Database }; var sqlServers = new List <Server> { primaryServer, otherServer }; this.serverRepositoryMock.Setup(m => m.ReadAllActiveAsync()).ReturnsAsync(sqlServers); // Performance tables cleanup this.cleanupTablesRepositoryMock.Setup(m => m.CleanupQoSGlassRunLog( It.Is <DateTime>(dt => dt == hour.HourTimeStamp.AddDays(DatabaseConstants.GlassRunLogDeleteThresholdDays)), Defaults.Database.DeleteBatchSize, true )).Returns(Task.Delay(5)); this.cleanupTablesRepositoryMock.Setup(m => m.CleanupPerformanceTable( $"{Names.Database.EddsdboSchema}.{Names.Database.VarscatOutputCumulativeTable}", Names.Database.SummaryDayHourColumn, It.Is <DateTime>(dt => dt == hour.HourTimeStamp.AddDays(DatabaseConstants.PastQuarterThreshold)), Defaults.Database.DeleteBatchSize, true )).Returns(Task.Delay(5)); this.cleanupTablesRepositoryMock.Setup(m => m.CleanupPerformanceTable( $"{Names.Database.EddsdboSchema}.{Names.Database.VarscatOutputDetailCumulativeTable}", Names.Database.SummaryDayHourColumn, It.Is <DateTime>(dt => dt == hour.HourTimeStamp.AddDays(DatabaseConstants.PastQuarterThreshold)), Defaults.Database.DeleteBatchSize, true )).Returns(Task.Delay(5)); this.cleanupTablesRepositoryMock.Setup(m => m.CleanupDecommissionedServers( hour.HourTimeStamp, Defaults.Database.DeleteBatchSize, true )).Returns(Task.Delay(5)); this.dataIntegrityRepositoryMock.Setup(m => m.DropAllTriggersInCurrentDatabase()).Returns(Task.Delay(5)); // Queuing QoS tasks var serverCleanupPrimary = new ServerCleanup { HourId = hourId, ServerId = primaryServer.ServerId, Success = false }; var serverCleanupPrimaryResult = new ServerCleanup { Id = 1, HourId = serverCleanupPrimary.HourId, ServerId = serverCleanupPrimary.ServerId, Success = serverCleanupPrimary.Success }; this.serverCleanupRepositoryMock.Setup(m => m.CreateAsync(It.Is <ServerCleanup>(s => s.ServerId == serverCleanupPrimary.ServerId && s.HourId == serverCleanupPrimary.HourId && s.Success == serverCleanupPrimary.Success ))).ReturnsAsync(serverCleanupPrimaryResult); var serverCleanupOther = new ServerCleanup { HourId = hourId, ServerId = otherServer.ServerId, Success = false }; var serverCleanupOtherResult = new ServerCleanup { Id = 2, HourId = serverCleanupOther.HourId, ServerId = serverCleanupOther.ServerId, Success = serverCleanupOther.Success }; this.serverCleanupRepositoryMock.Setup(m => m.CreateAsync(It.Is <ServerCleanup>(s => s.ServerId == serverCleanupOther.ServerId && s.HourId == serverCleanupOther.HourId && s.Success == serverCleanupOther.Success ))).ReturnsAsync(serverCleanupOtherResult); // Act await this.hourCleanupLogic.CleanupForHour(hourId); // Assert this.cleanupTablesRepositoryMock.VerifyAll(); this.serverRepositoryMock.VerifyAll(); this.hourRepositoryMock.VerifyAll(); this.dataIntegrityRepositoryMock.VerifyAll(); this.serverCleanupRepositoryMock.VerifyAll(); }
public async Task CleanupQosTables() { // Arrange var serverCleanupId = 3; var hourId = 3; var serverId = 2; var serverCleanup = new ServerCleanup { Id = serverCleanupId, HourId = hourId, ServerId = serverId }; this.serverCleanupRepositoryMock.Setup(m => m.ReadAsync(serverCleanupId)).ReturnsAsync(serverCleanup); var hour = new Hour { Id = hourId, HourTimeStamp = DateTime.UtcNow }; this.hourRepositoryMock.Setup(m => m.ReadAsync(hourId)).ReturnsAsync(hour); var serverName = "TestServer"; var server = new Server { ServerId = serverId, ServerName = serverName }; this.serverRepositoryMock.Setup(m => m.ReadAsync(serverId)).ReturnsAsync(server); this.dataIntegrityRepositoryMock.Setup(m => m.DropAllTriggersInCurrentDatabase(server)).Returns(Task.Delay(5)); this.cleanupTablesRepositoryMock.Setup(m => m.CleanupQosTable( server.ServerName, $"{Names.Database.EddsdboSchema}.{Names.Database.VarscatOutputTable}", Names.Database.SummaryDayHourColumn, It.Is <DateTime>(dt => dt == hour.HourTimeStamp.AddDays(DatabaseConstants.PastWeekThreshold)), Defaults.Database.DeleteBatchSize, true )).Returns(Task.Delay(5)); this.cleanupTablesRepositoryMock.Setup(m => m.CleanupQosTable( server.ServerName, $"{Names.Database.EddsdboSchema}.{Names.Database.VarscatOutputDetailTable}", Names.Database.TimestampColumn, hour.HourTimeStamp.AddDays(DatabaseConstants.PastWeekThreshold), Defaults.Database.DeleteBatchSize, true )).Returns(Task.Delay(5)); this.serverCleanupRepositoryMock.Setup(m => m.UpdateAsync( It.Is <ServerCleanup>(sc => sc.Id == serverCleanup.Id && sc.ServerId == serverCleanup.ServerId && sc.HourId == serverCleanup.HourId && sc.Success == true))).Returns(Task.Delay(5)); // Act await this.hourCleanupLogic.CleanupQosTables(serverCleanupId); // Assert this.hourRepositoryMock.VerifyAll(); this.serverCleanupRepositoryMock.VerifyAll(); this.serverRepositoryMock.VerifyAll(); this.dataIntegrityRepositoryMock.VerifyAll(); this.cleanupTablesRepositoryMock.VerifyAll(); }