public void BufferWorks() { FaultyConcurrentQueue <int> output = new FaultyConcurrentQueue <int>(); output.RandomlyFail = true; var bag = CreateTestBag(); var consumer = Factory.CreateConsumer(bag, output); consumer.Operation = (x) => x; consumer.Consume(); Assert.True(consumer.ResultCollection.Count > 0); }
public void WritesLinesCorrectlyEvenWithFaultyCollection() { string path = $"{PathBase}.{nameof(WritesLinesCorrectlyEvenWithFaultyCollection)}.txt"; CancellationTokenSource tokenSource = new CancellationTokenSource(); try { FaultyConcurrentQueue <string> queue = new FaultyConcurrentQueue <string> { RandomlyFail = false }; List <string> expected = new List <string>(); for (int i = 100; i-- > 0;) { string num = i.ToString(); expected.Add(num); queue.TryAdd(num); } queue.RandomlyFail = true; using (var writer = Factory.CreateWriter(path, queue)) { Task.WaitAll(writer.WriteLinesAsync(true, tokenSource.Token)); } List <string> actual = ReadFileLines(path); var result = Helpers.VerifyCollection(expected, actual); Assert.True(result.result, result.message); } finally { tokenSource?.Dispose(); File.Delete(path); } }
public void WritesCorrectlyEvenWithFaultyCollection() { string path = $"{PathBase}.{nameof(WritesLinesCorrectlyEvenWithFaultyCollection)}.txt"; CancellationTokenSource tokenSource = new CancellationTokenSource(); try { FaultyConcurrentQueue <string> queue = new FaultyConcurrentQueue <string> { RandomlyFail = false }; string expected = ""; for (int i = 100; i-- > 0;) { string num = i.ToString(); expected += num; queue.TryAdd(num); } queue.RandomlyFail = true; using (var writer = Factory.CreateWriter(path, queue)) { Task.WaitAll(writer.WriteAsync(true, tokenSource.Token)); } string actual = ReadFile(path); Assert.Equal(expected, actual); } finally { tokenSource?.Dispose(); File.Delete(path); } }