public void Extracting_ValidInput_ValidOutput() { // Arrange IInputQueue<string> inputQueue = new StringInputQueue(); IOutputQueue<string> outputQueue = new StringOutputQueue(); inputQueue.Enqueue("https://www.google.sk/"); IExtractor<string, string> extractor = new SyncStringToStringExtractor(new MockWebClient()); bool finished = false; // Act extractor.Extract(inputQueue, outputQueue, () => finished = true); // Assert string output = outputQueue.Dequeue(); Assert.IsNotNull(output); Assert.IsTrue(finished); }
public void StartProcessing_WebException_DoNotPropagateException() { // Arrange IInputQueue<string> inputQueue = new StringInputQueue(); inputQueue.Enqueue("https://en.wikipedia.org/wiki/Web_scraping"); inputQueue.Enqueue("https://en.wikipedia.org/wiki/Foxfire"); IOutputQueue<string> outputQueue = new StringOutputQueue(); // Use ExceptionWebClient to simulate Web Exception IExtractor<string, string> extractor = new SyncStringToStringExtractor(new ExceptionWebClient()); IProducerUnit producer = new ProducerUnit(inputQueue, outputQueue, extractor); // Act producer.StartProcessing(); // Assert int outputQueueLength = 0; while (outputQueue.Dequeue() != null) { outputQueueLength++; } Assert.AreEqual(0, outputQueueLength); }
public void StartProcessing_ValidInput_GetCorrectOutput() { // Arrange IInputQueue<string> inputQueue = new StringInputQueue(); inputQueue.Enqueue("https://en.wikipedia.org/wiki/Web_scraping"); inputQueue.Enqueue("https://en.wikipedia.org/wiki/Firefox"); inputQueue.Enqueue("https://en.wikipedia.org/wiki/Foxfire"); IOutputQueue<string> outputQueue = new StringOutputQueue(); IExtractor<string, string> extractor = new SyncStringToStringExtractor(new MockWebClient()); IProducerUnit producer = new ProducerUnit(inputQueue, outputQueue, extractor); // Act producer.StartProcessing(); // Assert int outputQueueLength = 0; while (outputQueue.Dequeue() != null) { outputQueueLength++; } Assert.AreEqual(3, outputQueueLength); }