public override DirectoryInfoBase CreateDirectory(string path, DirectorySecurity directorySecurity) { if (path == null) { throw new ArgumentNullException("path"); } if (path.Length == 0) { throw new ArgumentException("Path cannot be the empty string or all whitespace.", "path"); } if (mockFileDataAccessor.FileExists(path)) { var message = string.Format(CultureInfo.InvariantCulture, @"Cannot create ""{0}"" because a file or directory with the same name already exists.", path); var ex = new IOException(message); ex.Data.Add("Path", path); throw ex; } path = EnsurePathEndsWithDirectorySeparator(mockFileDataAccessor.Path.GetFullPath(path)); if (!Exists(path)) { mockFileDataAccessor.AddDirectory(path); } var created = new MockDirectoryInfo(mockFileDataAccessor, path); return created; }
public override DirectoryInfoBase CreateDirectory(string path, DirectorySecurity directorySecurity) { if (path == null) { throw new ArgumentNullException("path"); } if (path.Length == 0) { throw new ArgumentException(Properties.Resources.PATH_CANNOT_BE_THE_EMPTY_STRING_OR_ALL_WHITESPACE, "path"); } if (mockFileDataAccessor.FileExists(path)) { var message = string.Format(CultureInfo.InvariantCulture, @"Cannot create ""{0}"" because a file or directory with the same name already exists.", path); var ex = new IOException(message); ex.Data.Add("Path", path); throw ex; } path = EnsurePathEndsWithDirectorySeparator(mockFileDataAccessor.Path.GetFullPath(path)); if (!Exists(path)) { mockFileDataAccessor.AddDirectory(path); } var created = new MockDirectoryInfo(mockFileDataAccessor, path); return created; }
public void SetUp() { _parser = new FakeParser(); _logger = new FakeLogger(); _fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>()); _directory = new MockDirectoryInfo(_fileSystem, @"C:\databasename"); _service = new FileSystemScriptRepository(_directory, "servername", databaseName, _fileSystem, _parser, _logger, true); }
public void SetUp() { var gitExe = new Mock<IExternalProcess>(); _parser = new FakeParser(); _logger = new FakeLogger(); _fileSystem = new MockFileSystem(new Dictionary<string, MockFileData>()); _directory = new MockDirectoryInfo(_fileSystem, @"C:\databasename"); _service = new GitScriptRepository(_directory, "servername", databaseName, gitExe.Object, _fileSystem, _parser, _logger, true); }
public override DirectoryInfoBase CreateDirectory(string path, DirectorySecurity directorySecurity) { path = EnsurePathEndsWithDirectorySeparator(mockFileDataAccessor.Path.GetFullPath(path)); if (!Exists(path)) mockFileDataAccessor.AddDirectory(path); var created = new MockDirectoryInfo(mockFileDataAccessor, path); var parent = GetParent(path); if (parent != null) CreateDirectory(GetParent(path).FullName, directorySecurity); return created; }
public override DirectoryInfoBase CreateDirectory(string path) { if (path == null) { throw new ArgumentNullException("path"); } if (path.Length == 0) { throw new ArgumentException("PATH_CANNOT_BE_THE_EMPTY_STRING_OR_ALL_WHITESPACE", "path"); } path = EnsurePathEndsWithDirectorySeparator(mockFileDataAccessor.Path.GetFullPath(path)); if (!Exists(path)) { mockFileDataAccessor.AddDirectory(path); } var created = new MockDirectoryInfo(mockFileDataAccessor, path); return(created); }
private IDirectoryInfo CreateDirectoryInternal(string path, DirectorySecurity directorySecurity) { if (path == null) { throw new ArgumentNullException(nameof(path)); } if (path.Length == 0) { throw new ArgumentException(StringResources.Manager.GetString("PATH_CANNOT_BE_THE_EMPTY_STRING_OR_ALL_WHITESPACE"), "path"); } if (mockFileDataAccessor.PathVerifier.HasIllegalCharacters(path, true)) { throw CommonExceptions.IllegalCharactersInPath(nameof(path)); } path = mockFileDataAccessor.Path.GetFullPath(path).TrimSlashes(); if (XFS.IsWindowsPlatform()) { path = path.TrimEnd(' '); } if (!Exists(path)) { mockFileDataAccessor.AddDirectory(path); } var created = new MockDirectoryInfo(mockFileDataAccessor, path); if (directorySecurity != null) { created.SetAccessControl(directorySecurity); } return(created); }
private DirectoryInfoBase CreateDirectoryInternal(string path, DirectorySecurity directorySecurity) { if (path == null) { throw new ArgumentNullException("path"); } if (path.Length == 0) { throw new ArgumentException(StringResources.Manager.GetString("PATH_CANNOT_BE_THE_EMPTY_STRING_OR_ALL_WHITESPACE"), "path"); } path = EnsurePathEndsWithDirectorySeparator(mockFileDataAccessor.Path.GetFullPath(path)); if (!Exists(path)) { mockFileDataAccessor.AddDirectory(path); } var created = new MockDirectoryInfo(mockFileDataAccessor, path); created.SetAccessControl(directorySecurity); return(created); }
public override DirectoryInfoBase GetParent(string path) { if (path == null) { throw new ArgumentNullException("path"); } if (path.Length == 0) { throw new ArgumentException(Properties.Resources.PATH_CANNOT_BE_THE_EMPTY_STRING_OR_ALL_WHITESPACE, "path"); } if (MockPath.HasIllegalCharacters(path, false)) { throw new ArgumentException("Path contains invalid path characters.", "path"); } var absolutePath = mockFileDataAccessor.Path.GetFullPath(path); var sepAsString = mockFileDataAccessor.Path.DirectorySeparatorChar.ToString(CultureInfo.InvariantCulture); var lastIndex = 0; if (absolutePath != sepAsString) { var startIndex = absolutePath.EndsWith(sepAsString, StringComparison.OrdinalIgnoreCase) ? absolutePath.Length - 1 : absolutePath.Length; lastIndex = absolutePath.LastIndexOf(mockFileDataAccessor.Path.DirectorySeparatorChar, startIndex - 1); if (lastIndex < 0) { return null; } } var parentPath = absolutePath.Substring(0, lastIndex); if (string.IsNullOrEmpty(parentPath)) { return null; } var parent = new MockDirectoryInfo(mockFileDataAccessor, parentPath); return parent; }
public override DirectoryInfoBase GetParent(string path) { if (path == null) { throw new ArgumentNullException("path"); } if (path.Length == 0) { throw new ArgumentException("Path cannot be the empty string or all whitespace.", "path"); } var invalidChars = mockFileDataAccessor.Path.GetInvalidPathChars(); if (path.IndexOfAny(invalidChars) > -1) { throw new ArgumentException("Path contains invalid path characters.", "path"); } var absolutePath = mockFileDataAccessor.Path.GetFullPath(path); var sepAsString = mockFileDataAccessor.Path.DirectorySeparatorChar.ToString(CultureInfo.InvariantCulture); var lastIndex = 0; if (absolutePath != sepAsString) { var startIndex = absolutePath.EndsWith(sepAsString, StringComparison.OrdinalIgnoreCase) ? absolutePath.Length - 1 : absolutePath.Length; lastIndex = absolutePath.LastIndexOf(mockFileDataAccessor.Path.DirectorySeparatorChar, startIndex - 1); if (lastIndex < 0) { return null; } } var parentPath = absolutePath.Substring(0, lastIndex); if (string.IsNullOrEmpty(parentPath)) { return null; } var parent = new MockDirectoryInfo(mockFileDataAccessor, parentPath); return parent; }