public void PurgeReportRequestEntriesQueue() { using (var reportRequestService = new ReportRequestEntryService(_options, _easyMwsLogger)) { _reportProcessor.PurgeQueue(reportRequestService); } }
public void SetUp() { var reportRequestPropertiesContainer = new ReportRequestPropertiesContainer("_Report_Type_", ContentUpdateFrequency.NearRealTime, new List<string>(MwsMarketplaceGroup.AmazonEurope().Select(m => m.Id))); _reportRequestEntries = new List<ReportRequestEntry> { new ReportRequestEntry { AmazonRegion = AmazonRegion.Europe, ReportRequestData = JsonConvert.SerializeObject(reportRequestPropertiesContainer), LastAmazonRequestDate = DateTime.MinValue, ContentUpdateFrequency = 0, Id = 1, ReportType = reportRequestPropertiesContainer.ReportType, TargetHandlerId = "TargetHandlerId", TargetHandlerArgs = JsonConvert.SerializeObject(new Dictionary<string, object>{ { "key1", "value1"}, { "key2", "value2"} }) }, new ReportRequestEntry{Id = 2} }; _loggerMock = new Mock<IEasyMwsLogger>(); _reportRequestCallbackReportMock = new Mock<IReportRequestEntryRepository>(); _reportRequestCallbackReportMock.Setup(x => x.GetAll()).Returns(_reportRequestEntries.AsQueryable()); _reportRequestEntryService = new ReportRequestEntryService(_reportRequestCallbackReportMock.Object, _options, _loggerMock.Object); }
public void QueueReport(ReportRequestPropertiesContainer reportRequestContainer, string targetEventId = null, Dictionary <string, object> targetEventArgs = null) { using (var reportRequestService = new ReportRequestEntryService(_options, _easyMwsLogger)) { _reportProcessor.QueueReport(reportRequestService, reportRequestContainer, targetEventId, targetEventArgs); } }
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 Poll() { Parallel.Invoke( () => { using (var reportRequestService = new ReportRequestEntryService(_options, _easyMwsLogger)) { _reportProcessor.PollReports(reportRequestService); } }, () => { using (var feedSubmissionService = new FeedSubmissionEntryService(_options, _easyMwsLogger)) { _feedProcessor.PollFeeds(feedSubmissionService); } }); }
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); }