Esempio n. 1
0
	    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);
	    }
Esempio n. 2
0
		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);
		}
Esempio n. 3
0
		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);
		}
Esempio n. 4
0
		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);
		}