public void StartProcessingBatchesIfNoFailures_WhenMaxConcurrencyLimitHit_DoesNotStartNewBatch()
            {
                var commitItemBatch0 = new CatalogCommitItemBatch(new[] { _commitItem0 }, _packageIdentitya.Id);
                var commitItemBatch1 = new CatalogCommitItemBatch(new[] { _commitItem2 }, _packageIdentityc.Id);

                using (var cancellationTokenSource = new CancellationTokenSource())
                {
                    var inProcessTask = new CatalogCommitItemBatchTask(
                        commitItemBatch0,
                        Task.Delay(TimeSpan.FromMilliseconds(-1), cancellationTokenSource.Token));
                    var unprocessedBatches = new List <CatalogCommitItemBatch>()
                    {
                        commitItemBatch1
                    };
                    var processingBatches = new List <CatalogCommitItemBatchTask>()
                    {
                        inProcessTask
                    };

                    const int maxConcurrentBatches = 1;

                    CatalogCommitUtilities.StartProcessingBatchesIfNoFailures(
                        new CollectorHttpClient(),
                        new JObject(),
                        unprocessedBatches,
                        processingBatches,
                        maxConcurrentBatches,
                        NoOpProcessBatchAsync,
                        CancellationToken.None);

                    Assert.Single(unprocessedBatches);
                    Assert.Single(processingBatches);
                }
            }
            public void StartProcessingBatchesIfNoFailures_WhenProcessingQueueContainsCompletedTasks_StartsNewBatch()
            {
                var commitItemBatch0   = new CatalogCommitItemBatch(new[] { _commitItem0 }, _packageIdentitya.Id);
                var commitItemBatch1   = new CatalogCommitItemBatch(new[] { _commitItem1 }, _packageIdentityb.Id);
                var completedTask      = new CatalogCommitItemBatchTask(commitItemBatch0, Task.CompletedTask);
                var unprocessedBatches = new List <CatalogCommitItemBatch>()
                {
                    commitItemBatch1
                };
                var processingBatches = new List <CatalogCommitItemBatchTask>()
                {
                    completedTask
                };

                CatalogCommitUtilities.StartProcessingBatchesIfNoFailures(
                    new CollectorHttpClient(),
                    new JObject(),
                    unprocessedBatches,
                    processingBatches,
                    _maxConcurrentBatches,
                    NoOpProcessBatchAsync,
                    CancellationToken.None);

                Assert.Empty(unprocessedBatches);
                Assert.Equal(2, processingBatches.Count);
            }
            public void StartProcessingBatchesIfNoFailures_WhenNoBatchIsCancelled_DoesNotStartNewBatch()
            {
                var commitItemBatch = new CatalogCommitItemBatch(
                    new[] { _commitItem0, _commitItem1 },
                    _packageIdentitya.Id);
                var cancelledBatchTask = new CatalogCommitItemBatchTask(
                    commitItemBatch,
                    Task.FromCanceled(new CancellationToken(canceled: true)));
                var unprocessedBatches = new List <CatalogCommitItemBatch>()
                {
                    commitItemBatch
                };
                var processingBatches = new List <CatalogCommitItemBatchTask>()
                {
                    cancelledBatchTask
                };

                CatalogCommitUtilities.StartProcessingBatchesIfNoFailures(
                    new CollectorHttpClient(),
                    new JObject(),
                    unprocessedBatches,
                    processingBatches,
                    _maxConcurrentBatches,
                    NoOpProcessBatchAsync,
                    CancellationToken.None);

                Assert.Single(unprocessedBatches);
                Assert.Single(processingBatches);
            }
Exemple #4
0
            public void StartProcessingBatchesIfNoFailures_WhenAnyBatchIsFailed_DoesNotStartNewBatch()
            {
                var commitItemBatch = new CatalogCommitItemBatch(
                    new[] { _commitItem0, _commitItem1 },
                    _packageIdentitya.Id);
                var failedBatchTask    = new CatalogCommitItemBatchTask(commitItemBatch, FailedTask);
                var unprocessedBatches = new List <CatalogCommitItemBatch>()
                {
                    commitItemBatch
                };
                var processingBatches = new List <CatalogCommitItemBatchTask>()
                {
                    failedBatchTask
                };

                CatalogCommitUtilities.StartProcessingBatchesIfNoFailures(
                    new CollectorHttpClient(),
                    new JObject(),
                    unprocessedBatches,
                    processingBatches,
                    _maxConcurrentBatches,
                    NoOpProcessBatchAsync,
                    CancellationToken.None);

                Assert.Equal(1, unprocessedBatches.Count);
                Assert.Equal(1, processingBatches.Count);
            }
        public void Equals_WhenObjectBatchHasSameKey_ReturnsTrue()
        {
            var commitTimeStamp0     = DateTime.UtcNow;
            var commitItem0          = TestUtility.CreateCatalogCommitItem(commitTimeStamp0, _packageIdentity);
            var commitItemBatch0     = new CatalogCommitItemBatch(new[] { commitItem0 }, _packageIdentity.Id);
            var commitItemBatchTask0 = new CatalogCommitItemBatchTask(commitItemBatch0, Task.CompletedTask);
            var commitTimeStamp1     = commitTimeStamp0.AddMinutes(1);
            var commitItem1          = TestUtility.CreateCatalogCommitItem(commitTimeStamp1, _packageIdentity);
            var commitItemBatch1     = new CatalogCommitItemBatch(new[] { commitItem1 }, _packageIdentity.Id);
            var commitItemBatchTask1 = new CatalogCommitItemBatchTask(commitItemBatch1, Task.CompletedTask);

            Assert.True(commitItemBatchTask0.Equals(obj: commitItemBatchTask1));
            Assert.True(commitItemBatchTask1.Equals(obj: commitItemBatchTask0));
            Assert.True(commitItemBatchTask0.Equals(other: commitItemBatchTask1));
            Assert.True(commitItemBatchTask1.Equals(other: commitItemBatchTask0));
        }
        public void Equals_WhenObjectBatchHasDifferentKey_ReturnsFalse()
        {
            var commitTimeStamp0 = DateTime.UtcNow;
            var commitItem0      = TestUtility.CreateCatalogCommitItem(
                commitTimeStamp0,
                new PackageIdentity(id: "a", version: new NuGetVersion("1.0.0")));
            var commitItemBatch0     = new CatalogCommitItemBatch(new[] { commitItem0 }, key: "a");
            var commitItemBatchTask0 = new CatalogCommitItemBatchTask(commitItemBatch0, Task.CompletedTask);
            var commitTimeStamp1     = commitTimeStamp0.AddMinutes(1);
            var commitItem1          = TestUtility.CreateCatalogCommitItem(
                commitTimeStamp1,
                new PackageIdentity(id: "b", version: new NuGetVersion("1.0.0")));
            var commitItemBatch1     = new CatalogCommitItemBatch(new[] { commitItem1 }, key: "b");
            var commitItemBatchTask1 = new CatalogCommitItemBatchTask(commitItemBatch1, Task.CompletedTask);

            Assert.False(commitItemBatchTask0.Equals(obj: commitItemBatchTask1));
            Assert.False(commitItemBatchTask1.Equals(obj: commitItemBatchTask0));
            Assert.False(commitItemBatchTask0.Equals(other: commitItemBatchTask1));
            Assert.False(commitItemBatchTask1.Equals(other: commitItemBatchTask0));
        }
 public CatalogCommitBatchTaskTests()
 {
     _commitItemBatch     = CreateCatalogCommitItemBatch(_packageIdentity.Id);
     _commitItemBatchTask = new CatalogCommitItemBatchTask(_commitItemBatch, Task.CompletedTask);
 }