public void DirectorySecurity_CreateDirectory_InvalidPath() { DirectorySecurity security = new DirectorySecurity(); Assert.Throws <ArgumentNullException>("path", () => security.CreateDirectory(null)); Assert.Throws <ArgumentException>(() => security.CreateDirectory("")); }
public void DirectorySecurity_CreateDirectory_NullSecurity() { DirectorySecurity security = null; string path = "whatever"; Assert.Throws <ArgumentNullException>("directorySecurity", () => security.CreateDirectory(path)); Assert.Throws <ArgumentNullException>("directorySecurity", () => FileSystemAclExtensions.CreateDirectory(security, path)); }
/// <inheritdoc /> public IDirectoryInfo CreateDirectory(string path, DirectorySecurity directorySecurity) { return(this.EncapsulateWithExtension( () => new DirectoryInfo(directorySecurity.CreateDirectory(path)), e => e.BeginCreateDirectory(path, directorySecurity), (e, r) => e.EndCreateDirectory(r, path, directorySecurity), (IDirectoryExtension e, ref Exception exception) => e.FailCreateDirectory(ref exception, path, directorySecurity))); }
private void Verify_DirectorySecurity_CreateDirectory(DirectorySecurity expectedSecurity) { using var tempRootDir = new TempAclDirectory(); string path = Path.Combine(tempRootDir.Path, Guid.NewGuid().ToString()); DirectoryInfo dirInfo = expectedSecurity.CreateDirectory(path); Assert.True(dirInfo.Exists); tempRootDir.CreatedSubdirectories.Add(dirInfo); var actualDirInfo = new DirectoryInfo(path); DirectorySecurity actualSecurity = actualDirInfo.GetAccessControl(AccessControlSections.Access); VerifyAccessSecurity(expectedSecurity, actualSecurity); }
private void Verify_DirectorySecurity_CreateDirectory(DirectorySecurity expectedSecurity) { using var directory = new TempDirectory(); string path = Path.Combine(directory.Path, "createMe"); DirectoryInfo createdInfo = expectedSecurity.CreateDirectory(path); Assert.True(Directory.Exists(path)); DirectoryInfo actualInfo = new DirectoryInfo(path); DirectorySecurity actualSecurity = actualInfo.GetAccessControl(); VerifyAccessSecurity(expectedSecurity, actualSecurity); }
public void DirectorySecurity_CreateDirectory_DirectoryAlreadyExists() { using var directory = new TempDirectory(); string path = Path.Combine(directory.Path, "createMe"); DirectorySecurity basicSecurity = new DirectorySecurity(); DirectoryInfo basicDirInfo = basicSecurity.CreateDirectory(path); Assert.True(Directory.Exists(path)); DirectorySecurity specificSecurity = GetDirectorySecurity(FileSystemRights.ExecuteFile, AccessControlType.Deny); // Already exists, existingDirInfo should have the original basic security, not the new specific security DirectoryInfo existingDirInfo = specificSecurity.CreateDirectory(path); DirectorySecurity actualSecurity = existingDirInfo.GetAccessControl(); VerifyAccessSecurity(basicSecurity, actualSecurity); }
public void DirectorySecurity_CreateDirectory_DirectoryAlreadyExists() { using var tempRootDir = new TempAclDirectory(); string path = Path.Combine(tempRootDir.Path, Guid.NewGuid().ToString()); DirectorySecurity expectedSecurity = GetDirectorySecurity(FileSystemRights.FullControl); DirectoryInfo dirInfo = expectedSecurity.CreateDirectory(path); Assert.True(dirInfo.Exists); tempRootDir.CreatedSubdirectories.Add(dirInfo); var basicSecurity = new DirectorySecurity(); // Already exists, existingDirInfo should have the original security, not the new basic security DirectoryInfo existingDirInfo = basicSecurity.CreateDirectory(path); DirectorySecurity actualSecurity = existingDirInfo.GetAccessControl(AccessControlSections.Access); VerifyAccessSecurity(expectedSecurity, actualSecurity); }