public void InvokeIFileReaderInputProviderFactory_CreateFileReaderInputProviderMethod_OnceWithCorrectArgument() { // Arrange var commandParsingStrategy = new Mock <ICommandParsingStrategy>(); var commandUtilizationStrategy = new Mock <ICommandUtilizationStrategy>(); var logFilePathDiscoveryStrategy = new Mock <ILogFilePathDiscoveryStrategy>(); var fileReaderAutoResetEventFactory = new Mock <IFileReaderAutoResetEventFactory>(); var fileReaderFileSystemWatcherFactory = new Mock <IFileReaderFileSystemWatcherFactory>(); var fileReaderInputProviderFactory = new Mock <IFileReaderInputProviderFactory>(); var fileReaderInputProviderMock = new Mock <IFileReaderInputProvider>(); fileReaderInputProviderMock.Setup(i => i.ReadLine()).Returns <string>(null); fileReaderInputProviderFactory.Setup(f => f.CreateFileReaderInputProvider(It.IsAny <string>())).Returns(fileReaderInputProviderMock.Object); var fileReaderAutoResetEventMock = new Mock <IFileReaderAutoResetEvent>(); fileReaderAutoResetEventMock.Setup(e => e.WaitOne(It.IsAny <int>())).Returns(true); fileReaderAutoResetEventFactory.Setup(f => f.CreateFileReaderAutoResetEvent(It.IsAny <bool>())).Returns(fileReaderAutoResetEventMock.Object); var logFilePath = "Fake Log Path"; logFilePathDiscoveryStrategy.Setup(s => s.DiscoverLogFile()).Returns(logFilePath); var fileReaderEngine = new LogFileReaderEngine(commandParsingStrategy.Object, commandUtilizationStrategy.Object, logFilePathDiscoveryStrategy.Object, fileReaderAutoResetEventFactory.Object, fileReaderFileSystemWatcherFactory.Object, fileReaderInputProviderFactory.Object); // Act fileReaderEngine.StartAsync(); Thread.Sleep(250); fileReaderEngine.Stop(); // Assert fileReaderInputProviderFactory.Verify(f => f.CreateFileReaderInputProvider(logFilePath), Times.Once()); }
public void CreateValidObject_WhenAllParametersAreValid() { // Arrange var commandParsingStrategy = new Mock<ICommandParsingStrategy>(); var commandUtilizationStrategy = new Mock<ICommandUtilizationStrategy>(); var logFilePathDiscoveryStrategy = new Mock<ILogFilePathDiscoveryStrategy>(); var fileReaderAutoResetEventFactory = new Mock<IFileReaderAutoResetEventFactory>(); var fileReaderFileSystemWatcherFactory = new Mock<IFileReaderFileSystemWatcherFactory>(); var fileReaderInputProviderFactory = new Mock<IFileReaderInputProviderFactory>(); // Act var actualInstance = new LogFileReaderEngine(commandParsingStrategy.Object, commandUtilizationStrategy.Object, logFilePathDiscoveryStrategy.Object, fileReaderAutoResetEventFactory.Object, fileReaderFileSystemWatcherFactory.Object, fileReaderInputProviderFactory.Object); // Assert Assert.That(actualInstance, Is.Not.Null.And.InstanceOf<ILogFileReaderEngine>()); }
public void InvokeICommandUtilizationStrategy_UtilizeCommandMethod_WithCorrectArgument_WhenInputProviderProvidesInput() { // Arrange var commandParsingStrategy = new Mock <ICommandParsingStrategy>(); var commandUtilizationStrategy = new Mock <ICommandUtilizationStrategy>(); var logFilePathDiscoveryStrategy = new Mock <ILogFilePathDiscoveryStrategy>(); var fileReaderAutoResetEventFactory = new Mock <IFileReaderAutoResetEventFactory>(); var fileReaderFileSystemWatcherFactory = new Mock <IFileReaderFileSystemWatcherFactory>(); var fileReaderInputProviderFactory = new Mock <IFileReaderInputProviderFactory>(); var fakeNextInputLine = "fake input command"; var fileReaderInputProviderMock = new Mock <IFileReaderInputProvider>(); fileReaderInputProviderMock.SetupSequence(i => i.ReadLine()).Returns(fakeNextInputLine).Returns(null); fileReaderInputProviderFactory.Setup(f => f.CreateFileReaderInputProvider(It.IsAny <string>())).Returns(fileReaderInputProviderMock.Object); var fileReaderAutoResetEventMock = new Mock <IFileReaderAutoResetEvent>(); fileReaderAutoResetEventMock.Setup(e => e.WaitOne(It.IsAny <int>())).Returns(true); fileReaderAutoResetEventFactory.Setup(f => f.CreateFileReaderAutoResetEvent(It.IsAny <bool>())).Returns(fileReaderAutoResetEventMock.Object); var logFilePath = "Fake Log Path"; logFilePathDiscoveryStrategy.Setup(s => s.DiscoverLogFile()).Returns(logFilePath); var fakeParsedCommand = new Mock <ICommand>(); commandParsingStrategy.Setup(p => p.ParseCommand(It.IsAny <string>())).Returns(fakeParsedCommand.Object); var fileReaderEngine = new LogFileReaderEngine(commandParsingStrategy.Object, commandUtilizationStrategy.Object, logFilePathDiscoveryStrategy.Object, fileReaderAutoResetEventFactory.Object, fileReaderFileSystemWatcherFactory.Object, fileReaderInputProviderFactory.Object); // Act fileReaderEngine.StartAsync(); Thread.Sleep(250); fileReaderEngine.Stop(); // Assert commandUtilizationStrategy.Verify(u => u.UtilizeCommand(fakeParsedCommand.Object), Times.Once()); }