public async void ShouldWaitWithAcquiringNextImageUntilCurrentImageIsProcessed() { // Given var engine = new SyncProcessingEngine(ImageProvider.Object, ImageProcessingChain.Object, ReceiveProcessedImageCommand.Object); // When await StartProcessingWaitForSpecifiedTimeAndWaitForEnd(engine, 1750); // Then Assert.AreEqual(2, TimesImageProviderCalled); Assert.AreEqual(1, TimesImageProcessingChainCalled); }
public async void ShouldNotProcessImageBeforeAcquiringIt() { // Given var engine = new SyncProcessingEngine(ImageProvider.Object, ImageProcessingChain.Object, ReceiveProcessedImageCommand.Object); // When await StartProcessingWaitForSpecifiedTimeAndWaitForEnd(engine, 1); // Then Assert.AreEqual(1, TimesImageProviderCalled); Assert.AreEqual(0, TimesImageProcessingChainCalled); }
public async void ShouldSetOutputImageAfterProcessing() { // Given var engine = new SyncProcessingEngine(ImageProvider.Object, ImageProcessingChain.Object, ReceiveProcessedImageCommand.Object); // When await StartProcessingWaitForSpecifiedTimeAndWaitForEnd(engine, 1750); // Then Assert.AreEqual(1, TimesImageProcessingChainCalled); Assert.AreEqual(1, TimesReceiveProcessedImageCommandCalled); }
public void ShouldNotAllowToStopNotStartedEngine() { // Given var imageProvider = new Mock <IImageProvider>(); Image image; imageProvider.Setup(ia => ia.TryToObtainImage(out image)).Callback(ImageProviderMockWork).Returns(true); var engine = new SyncProcessingEngine(imageProvider.Object, ImageProcessingChain.Object, ReceiveProcessedImageCommand.Object); // When // Then Assert.Throws <InvalidEngineStateException>(async() => await engine.Stop()); }
public async void ShouldInformAboutNotWorkingWhenNoThreadRunning() { // Given var imageProvider = new Mock <IImageProvider>(); Image image; imageProvider.Setup(ia => ia.TryToObtainImage(out image)).Callback(ImageProviderMockWork).ReturnsInOrder(true, false); var engine = new SyncProcessingEngine(imageProvider.Object, ImageProcessingChain.Object, ReceiveProcessedImageCommand.Object); // When await engine.Start(); // Then Assert.IsFalse(engine.IsWorking()); }
public async void ShouldStopWorkingAfterNoImageWasObtained() { // Given Image image; var imageProvider = new Mock <IImageProvider>(); imageProvider.Setup(i => i.TryToObtainImage(out image)).Callback(ImageProviderMockWork).Returns(false); var engine = new SyncProcessingEngine(imageProvider.Object, ImageProcessingChain.Object, ReceiveProcessedImageCommand.Object); // When await StartProcessingWaitForSpecifiedTimeAndWaitForEnd(engine, 2500); // Then Assert.AreEqual(1, TimesImageProviderCalled); Assert.AreEqual(0, TimesImageProcessingChainCalled); }