public void RequestFeedSubmissionStatusesAllFromAmazon(IFeedSubmissionEntryService feedSubmissionService) { var allFeedSubmissions = feedSubmissionService.GetAllSubmittedFeedsFromQueue(_merchantId, _region).ToList(); const int batchSize = 20; var numberOfBatches = (allFeedSubmissions.Count + batchSize - 1) / batchSize; for (int batchNumber = 0; batchNumber < numberOfBatches; batchNumber++) { var nextBatchOfEntriesToProcess = allFeedSubmissions.Skip(batchSize * batchNumber).Take(batchSize).ToList(); RequestFeedSubmissionStatusesBatchFromAmazon(feedSubmissionService, nextBatchOfEntriesToProcess); } }
public void GetAllSubmittedFeedsFromQueue_ReturnsListOfSubmittedFeeds_ForGivenMerchant() { // Arrange var propertiesContainer = new FeedSubmissionPropertiesContainer("testFeedContent", "testFeedType"); var serializedPropertiesContainer = JsonConvert.SerializeObject(propertiesContainer); var testMerchantId2 = "test merchant id 2"; var data = new List <FeedSubmissionEntry> { new FeedSubmissionEntry(serializedPropertiesContainer) { AmazonRegion = AmazonRegion.Europe, MerchantId = testMerchantId2, Id = 2, FeedSubmissionId = "FeedSubmissionId2", IsProcessingComplete = false }, new FeedSubmissionEntry(serializedPropertiesContainer) { AmazonRegion = AmazonRegion.Europe, MerchantId = testMerchantId2, Id = 3, FeedSubmissionId = "FeedSubmissionId3", IsProcessingComplete = false }, new FeedSubmissionEntry(serializedPropertiesContainer) { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 4, FeedSubmissionId = "FeedSubmissionId4", IsProcessingComplete = false }, new FeedSubmissionEntry(serializedPropertiesContainer) { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 5, FeedSubmissionId = "FeedSubmissionId5", IsProcessingComplete = false }, new FeedSubmissionEntry(serializedPropertiesContainer) { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 6, FeedSubmissionId = null, IsProcessingComplete = false }, new FeedSubmissionEntry(serializedPropertiesContainer) { AmazonRegion = AmazonRegion.Europe, MerchantId = _merchantId, Id = 7, FeedSubmissionId = "FeedSubmissionId7", IsProcessingComplete = true }, new FeedSubmissionEntry(serializedPropertiesContainer) { AmazonRegion = AmazonRegion.NorthAmerica, MerchantId = _merchantId, Id = 8, FeedSubmissionId = "FeedSubmissionId8", IsProcessingComplete = false } }; _feedSubmissionEntries.AddRange(data); // Act var listSubmittedFeeds = _feedSubmissionEntryService.GetAllSubmittedFeedsFromQueue(_merchantId, _region); // Assert Assert.AreEqual(2, listSubmittedFeeds.Count()); Assert.IsTrue(listSubmittedFeeds.Count(sf => sf.FeedSubmissionId == "FeedSubmissionId4" || sf.FeedSubmissionId == "FeedSubmissionId5") == 2); }