Пример #1
0
        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());
        }
Пример #2
0
        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>());
        }
Пример #3
0
        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());
        }