public void UpsertBlockOrSkipWithStress() { BlobStorage.PutBlob(ContainerName, BlobName, 0); var array = new Maybe <int> [8]; array = array .AsParallel() .Select(k => BlobStorage.UpsertBlobOrSkip <int>(ContainerName, BlobName, () => 1, i => i + 1)) .ToArray(); Assert.IsFalse(array.Any(x => !x.HasValue), "No skips"); var sorted = array.Select(m => m.Value) .OrderBy(i => i) .ToArray(); for (int i = 0; i < array.Length; i++) { Assert.AreEqual(i + 1, sorted[i], "Concurrency should be resolved, every call should increment by one."); } }
public void UpsertBlockOrSkipWithStress() { BlobStorage.PutBlob(ContainerName, BlobName, 0); var array = new Maybe<int>[8]; array = array .AsParallel() .Select(k => BlobStorage.UpsertBlobOrSkip<int>(ContainerName, BlobName, () => 1, i => i + 1)) .ToArray(); Assert.IsFalse(array.Any(x => !x.HasValue), "No skips"); var sorted = array.Select(m => m.Value) .OrderBy(i => i) .ToArray(); for (int i = 0; i < array.Length; i++) { Assert.AreEqual(i + 1, sorted[i], "Concurrency should be resolved, every call should increment by one."); } }