示例#1
0
        public void CanProcess_Negative()
        {
            // Arrange
            var replaceWordsData = new ReplaceWordData();

            // Actual
            var actualValue = countWordsOperation.CanProcess(replaceWordsData);

            // Assert
            Assert.False(actualValue);
        }
        public void CanProcess_Positive()
        {
            // Arrange
            var replaceWordData = new ReplaceWordData();

            // Actual
            var actualValue = replaceWordOperation.CanProcess(replaceWordData);

            // Assert
            Assert.True(actualValue);
        }
        public void Parse_CountWords(params string[] args)
        {
            // Arrange
            var expectedValue = new ReplaceWordData
            {
                FilePath        = args[0],
                SearchWord      = args[1],
                ReplaceableWord = args[2]
            };

            // Act
            var actualValue = (ReplaceWordData)replaceWordParser.Parse(args);

            // Assert
            Assert.Equal(expectedValue.FilePath, actualValue.FilePath);
            Assert.Equal(expectedValue.SearchWord, actualValue.SearchWord);
            Assert.Equal(expectedValue.ReplaceableWord, actualValue.ReplaceableWord);
        }
        public void Process()
        {
            // Arrange
            var text     = "123 456 123 456 789 123";
            var filePath = "File.txt";

            var replaceWordData = new ReplaceWordData
            {
                FilePath        = filePath,
                SearchWord      = "123",
                ReplaceableWord = "abc"
            };

            var expectedMessage = $"The word {replaceWordData.SearchWord} was changed on {replaceWordData.ReplaceableWord}";

            var fileManagerMock = new Mock <IFileManager>();

            fileManagerMock
            .Setup(m => m.ReadText(filePath))
            .Returns(text);

            var actualMessage = string.Empty;

            var loggerMock = new Mock <ILogger>();

            loggerMock
            .Setup(l => l.LogInformation(It.IsAny <string>()))
            .Callback <string>(message => actualMessage = message);

            var operation = new ReplaceWordOperation(
                fileManagerMock.Object,
                loggerMock.Object
                );

            // Act
            operation.Process(replaceWordData);

            // Assert
            Assert.Equal(expectedMessage, actualMessage);
        }