public void TwoJobsInSameDayShouldNotSendDuplicateExpiringEmails() { // Arange var cursorTime = new DateTimeOffset(year: 2018, month: 4, day: 10, hour: 8, minute: 2, second: 2, offset: TimeSpan.FromSeconds(0)); var jobRunTime = cursorTime.AddHours(1); int warnDaysBeforeExpiration = 2; var maxProcessedCredentialTime = cursorTime.AddDays(warnDaysBeforeExpiration); var jobMetadata = new CredentialExpirationJobMetadata(jobRunTime, warnDaysBeforeExpiration, new JobRunTimeCursor(cursorTime, maxProcessedCredentialTime)); var previouslyProcessedCred = new ExpiredCredentialData() { Expires = maxProcessedCredentialTime }; var expiringCred = new ExpiredCredentialData() { // A datetime <= jobRunTime.AddDays(warnDaysBeforeExpiration) and larger than maxProcessedCredentialTime Expires = jobRunTime.AddDays(warnDaysBeforeExpiration).AddMinutes(-1) }; var credentialSet = new List <ExpiredCredentialData> { previouslyProcessedCred, expiringCred }; var testCredentials = new TestCredentialExpiration(jobMetadata, credentialSet); // Act var expiringCredentials = testCredentials.GetExpiringCredentials(credentialSet).OrderBy(c => c.Expires).ToList(); // Assert Assert.Single(expiringCredentials); Assert.Equal(expiringCred.Expires, expiringCredentials[0].Expires); }
public void ExpiringCredentialsAreCorrectReturned() { // Arange var cursorTime = new DateTimeOffset(year: 2018, month: 4, day: 10, hour: 8, minute: 2, second: 2, offset: TimeSpan.FromSeconds(0)); var jobRunTime = cursorTime.AddDays(2); var maxProcessedCredentialTime = cursorTime.AddDays(1); int warnDaysBeforeExpiration = 2; var jobMetadata = new CredentialExpirationJobMetadata(jobRunTime, warnDaysBeforeExpiration, new JobRunTimeCursor(cursorTime, cursorTime.AddDays(1))); var expiringCred1 = new ExpiredCredentialData() { Expires = jobRunTime.AddDays(warnDaysBeforeExpiration).AddHours(-1) }; var expiringCred2 = new ExpiredCredentialData() { Expires = jobRunTime.AddDays(warnDaysBeforeExpiration) }; var expiringOldCred = new ExpiredCredentialData() { // Time is smaller than the max of the credentials' time in the cursor Expires = maxProcessedCredentialTime.AddHours(-1) }; var credentialSet = new List <ExpiredCredentialData> { expiringCred1, expiringCred2, expiringOldCred }; var testCredentials = new TestCredentialExpiration(jobMetadata, credentialSet); // Act var expiringCred = testCredentials.GetExpiringCredentials(credentialSet).OrderBy(c => c.Expires).ToList(); // Assert Assert.Equal(2, testCredentials.GetExpiringCredentials(credentialSet).Count); Assert.Equal(expiringCred1.Expires, expiringCred[0].Expires); Assert.Equal(expiringCred2.Expires, expiringCred[1].Expires); }
public void ExpiredCredentialsAreCorrectReturned() { // Arange var cursorTime = new DateTimeOffset(year: 2018, month: 4, day: 10, hour: 8, minute: 2, second: 2, offset: TimeSpan.FromSeconds(0)); var jobRunTime = cursorTime.AddDays(2); var maxProcessedCredentialTime = cursorTime.AddDays(1); int warnDaysBeforeExpiration = 2; var jobMetadata = new CredentialExpirationJobMetadata(jobRunTime, warnDaysBeforeExpiration, new JobRunTimeCursor(cursorTime, cursorTime.AddDays(1))); var expiredCredential = new ExpiredCredentialData() { Expires = jobRunTime.AddHours(-1) }; var notExpiredCredential1 = new ExpiredCredentialData() { Expires = jobRunTime }; var notExpiredCredenatial2 = new ExpiredCredentialData() { Expires = jobRunTime.AddHours(1) }; var credentialSet = new List <ExpiredCredentialData> { expiredCredential, notExpiredCredential1, notExpiredCredenatial2 }; var testCredentials = new TestCredentialExpiration(jobMetadata, credentialSet); // Act var expiredCredentials = testCredentials.GetExpiredCredentials(credentialSet).OrderBy(c => c.Expires).ToList(); // Assert Assert.Single(expiredCredentials); Assert.Equal(expiredCredential.Expires, expiredCredentials[0].Expires); }
public CredentialExpirationEmailBuilderMethodTest(bool areCredentialsExpired) { FirstCredential = new ExpiredCredentialData { Username = Username, EmailAddress = Email, Description = "first", Expires = JobRunTime - new TimeSpan(25 * (areCredentialsExpired ? 1 : -1), 0, 0) }; SecondCredential = new ExpiredCredentialData { Username = Username, EmailAddress = Email, Description = "second", Expires = JobRunTime - new TimeSpan(2 * 25 * (areCredentialsExpired ? 1 : -1), 0, 0) }; AreCredentialsExpired = areCredentialsExpired; Builder = new CredentialExpirationEmailBuilder( Config, new MailAddress("*****@*****.**"), Username, new List <ExpiredCredentialData> { FirstCredential, SecondCredential }, JobRunTime, areCredentialsExpired); }