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));
        }
Esempio n. 3
0
 /// <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)));
 }
Esempio n. 4
0
        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);
        }
Esempio n. 7
0
        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);
        }