public ReplaceWordOperationTests() { var mockFileManager = new Mock <IFileManager>(); var mockLogger = new Mock <ILogger>(); replaceWordOperation = new ReplaceWordOperation( mockFileManager.Object, mockLogger.Object ); }
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); }