public void GetNextFromQueueOfReportsToRequest_ReturnsFirstReportRequestFromQueueForGivenMerchant_AndSkipsReportRequestsForDifferentMerchants() { var testMerchantId2 = "testMerchantId2"; var reportRequestWithDifferentMerchant = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = testMerchantId2, Id = 2, RequestReportId = null, ReportRequestRetryCount = 0 }; var reportRequestWithCorrectRegion1 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 3, RequestReportId = null, ReportRequestRetryCount = 0 }; var reportRequestWithCorrectRegion2 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 4, RequestReportId = null, ReportRequestRetryCount = 0 }; _reportRequestEntries.Add(reportRequestWithDifferentMerchant); _reportRequestEntries.Add(reportRequestWithCorrectRegion1); _reportRequestEntries.Add(reportRequestWithCorrectRegion2); var reportRequestCallback = _reportRequestEntryService.GetNextFromQueueOfReportsToRequest(_merchantId, _amazonRegion); Assert.AreEqual(reportRequestWithCorrectRegion1.Id, reportRequestCallback.Id); }
public void GetNextFromQueueOfReportsToRequest_WithRetryPeriodTypeConfiguredAsGeometricProgression_AndNonInitialRetryCount_ReturnsReportRequestWithTheExpectedCompleteRetryPeriod() { var customOptions = new EasyMwsOptions(); var testRequestRetryCount = 5; var minutesBetweenRetries = 60; var reportRequestWithRequestRetryPeriodIncomplete = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 2, RequestReportId = null, ReportRequestRetryCount = testRequestRetryCount, LastAmazonRequestDate = DateTime.UtcNow.AddMinutes(-61) }; customOptions.ReportRequestOptions.ReportRequestRetryInitialDelay = TimeSpan.FromMinutes(1); customOptions.ReportRequestOptions.ReportRequestRetryInterval = TimeSpan.FromMinutes(minutesBetweenRetries); customOptions.ReportRequestOptions.ReportRequestRetryType = RetryPeriodType.GeometricProgression; var reportRequestWithNoRetryPeriodComplete1 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 3, RequestReportId = null, ReportRequestRetryCount = testRequestRetryCount, LastAmazonRequestDate = DateTime.UtcNow.AddMinutes(-59) }; var reportRequestWithNoRetryPeriodComplete2 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 4, RequestReportId = null, ReportRequestRetryCount = testRequestRetryCount, LastAmazonRequestDate = DateTime.UtcNow.AddMinutes(-(testRequestRetryCount * minutesBetweenRetries - 1)) }; var reportRequestWithNoRetryPeriodComplete3 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 5, RequestReportId = null, ReportRequestRetryCount = testRequestRetryCount, LastAmazonRequestDate = DateTime.UtcNow.AddMinutes(-(testRequestRetryCount * minutesBetweenRetries - 1)) }; _reportRequestEntries.Add(reportRequestWithRequestRetryPeriodIncomplete); _reportRequestEntries.Add(reportRequestWithNoRetryPeriodComplete1); _reportRequestEntries.Add(reportRequestWithNoRetryPeriodComplete2); _reportRequestEntries.Add(reportRequestWithNoRetryPeriodComplete3); _reportRequestEntryService = new ReportRequestEntryService(_reportRequestCallbackReportMock.Object, customOptions, _loggerMock.Object); var reportRequestCallback = _reportRequestEntryService.GetNextFromQueueOfReportsToRequest(_merchantId, _amazonRegion); Assert.AreEqual(reportRequestWithNoRetryPeriodComplete2.Id, reportRequestCallback.Id); }
public void GetNextFromQueueOfReportsToRequest_WithConfiguredTimeToWaitBeforeFirstRetry_AndInitialRetryCount_ReturnsReportRequestWithTheExpectedCompleteRetryPeriod() { var customOptions = new EasyMwsOptions(); var reportRequestWithRequestRetryPeriodIncomplete = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 2, RequestReportId = null, ReportRequestRetryCount = 1, LastAmazonRequestDate = DateTime.UtcNow.AddMinutes(-59) }; customOptions.ReportRequestOptions.ReportRequestRetryInitialDelay = TimeSpan.FromMinutes(60); customOptions.ReportRequestOptions.ReportRequestRetryInterval = TimeSpan.FromMinutes(1); var reportRequestWithNoRetryPeriodComplete1 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 3, RequestReportId = null, ReportRequestRetryCount = 1, LastAmazonRequestDate = DateTime.UtcNow.AddMinutes(-61) }; var reportRequestWithNoRetryPeriodComplete2 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 4, RequestReportId = null, ReportRequestRetryCount = 1, LastAmazonRequestDate = DateTime.UtcNow.AddMinutes(-61) }; _reportRequestEntries.Add(reportRequestWithRequestRetryPeriodIncomplete); _reportRequestEntries.Add(reportRequestWithNoRetryPeriodComplete1); _reportRequestEntries.Add(reportRequestWithNoRetryPeriodComplete2); _reportRequestEntryService = new ReportRequestEntryService(_reportRequestCallbackReportMock.Object, customOptions, _loggerMock.Object); var reportRequestCallback = _reportRequestEntryService.GetNextFromQueueOfReportsToRequest(_merchantId, _amazonRegion); Assert.AreEqual(reportRequestWithNoRetryPeriodComplete1.Id, reportRequestCallback.Id); }
public void GetNextFromQueueOfReportsToRequest_ReturnsFirstReportRequestFromQueueWithNoRequestRetryCount_AndSkipsReportRequestsWithRequestRetryPeriodIncomplete() { var customOptions = new EasyMwsOptions(); var reportRequestWithRequestRetryPeriodIncomplete = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 2, RequestReportId = null, ReportRequestRetryCount = 1, LastAmazonRequestDate = DateTime.UtcNow.AddHours(-1) }; customOptions.ReportRequestOptions.ReportRequestRetryInitialDelay = TimeSpan.FromHours(2); customOptions.ReportRequestOptions.ReportRequestRetryInterval = TimeSpan.FromHours(2); var reportRequestWithNoRequestRetryCount1 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 3, RequestReportId = null, ReportRequestRetryCount = 0, LastAmazonRequestDate = DateTime.MinValue }; var reportRequestWithNoRequestRetryCount2 = new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 4, RequestReportId = null, ReportRequestRetryCount = 0, LastAmazonRequestDate = DateTime.MinValue }; _reportRequestEntries.Add(reportRequestWithRequestRetryPeriodIncomplete); _reportRequestEntries.Add(reportRequestWithNoRequestRetryCount1); _reportRequestEntries.Add(reportRequestWithNoRequestRetryCount2); _reportRequestEntryService = new ReportRequestEntryService(_reportRequestCallbackReportMock.Object, customOptions, _loggerMock.Object); var reportRequestCallback = _reportRequestEntryService.GetNextFromQueueOfReportsToRequest(_merchantId, _amazonRegion); Assert.AreEqual(reportRequestWithNoRequestRetryCount1.Id, reportRequestCallback.Id); }