public void Clean_MatchingDaemonFoldersNotFound_NoError_NotDeleted() { // Arrange var fileSystemMock = new Mock <IFileSystem>(); var mockLogger = new Mock <ILogger>(); SetupDirectories(fileSystemMock, "c:\\", "aaa", "bbb"); // Mark the first directory as not existing fileSystemMock.Setup(x => x.Directory.Exists("c:\\aaa")).Returns(false); var cleaner = new LegacyInstallationCleanup( mockLogger.Object, "c:\\", fileSystemMock.Object); // Act cleaner.Clean(); // Assert AssertRenamedFolderDeleted(fileSystemMock, "c:\\bbb"); AssertDeleteCalledExpectedTimes(fileSystemMock, 1); }
public void Clean_ErrorDuringDelete_ErrorSuppressedAndOtherFoldersDeleted() { // Arrange var fileSystemMock = new Mock <IFileSystem>(); var mockLogger = new Mock <ILogger>(); SetupDirectories(fileSystemMock, "c:\\aaa\\rootfolder", "xxx", "yyy"); // Set up to throw when the first directory is deleted fileSystemMock .Setup(x => x.Directory.Delete(It.Is <string>(n => n.StartsWith("c:\\aaa\\rootfolder\\xxx")), true)) .Throws(new FileNotFoundException()); var cleaner = new LegacyInstallationCleanup( mockLogger.Object, "c:\\aaa\\rootfolder", fileSystemMock.Object); // Act cleaner.Clean(); // Assert AssertRenamedFolderDeleted(fileSystemMock, "c:\\aaa\\rootfolder\\xxx"); AssertRenamedFolderDeleted(fileSystemMock, "c:\\aaa\\rootfolder\\yyy"); AssertDeleteCalledExpectedTimes(fileSystemMock, 2); }
public void StaticMethod_InvalidArg_Throws() { // Arrange Action act = () => LegacyInstallationCleanup.CleanupDaemonFiles(null); // Act & Assert act.Should().ThrowExactly <ArgumentNullException>().And.ParamName.Should().Be("logger"); }
public void Clean_FolderDoesNotExist_NoError() { // Arrange // "Strict" mocks, so will throw if any methods on the mock are called // (we don't expect either the logger or directory wrapper to be used if // the legacy folder does not exist) var fileSystemMock = new Mock <IFileSystem>(MockBehavior.Strict); var mockLogger = new Mock <ILogger>(MockBehavior.Strict); fileSystemMock.Setup(x => x.Directory.GetDirectories(It.IsAny <string>(), It.IsAny <string>())).Returns(new string[] { }); var cleaner = new LegacyInstallationCleanup( mockLogger.Object, "c:\\dummy directory\\that does\\not\\exist", fileSystemMock.Object); // Act cleaner.Clean(); // Assert AssertDeleteCalledExpectedTimes(fileSystemMock, 0); }
public void Clean_MatchingDaemonFoldersExist_Deleted() { // Arrange var fileSystemMock = new Mock <IFileSystem>(); var mockLogger = new Mock <ILogger>(); SetupDirectories(fileSystemMock, "c:\\aaa\\rootfolder", "sonarlint-daemon-match1-windows", "sonarlint-daemon-2.17.0.899-windows"); var cleaner = new LegacyInstallationCleanup( mockLogger.Object, "c:\\aaa\\rootfolder", fileSystemMock.Object); // Act cleaner.Clean(); // Assert AssertRenamedFolderDeleted(fileSystemMock, "c:\\aaa\\rootfolder\\sonarlint-daemon-match1-windows"); AssertRenamedFolderDeleted(fileSystemMock, "c:\\aaa\\rootfolder\\sonarlint-daemon-2.17.0.899-windows"); AssertDeleteCalledExpectedTimes(fileSystemMock, 2); }