Пример #1
0
        public void Constructor()
        {
            try
            {
                ExtendedFileInfo efi = new ExtendedFileInfo(null);
            }
            catch (ArgumentNullException)
            {
                Assert.IsTrue(true);
            }
            catch (Exception e)
            {
                Assert.Fail(e.Message);
            }

            try
            {
                ExtendedFileInfo efi = new ExtendedFileInfo(String.Empty);
            }
            catch (ArgumentException)
            {
                Assert.IsTrue(true);
            }
            catch (Exception e)
            {
                Assert.Fail(e.Message);
            }
        }
Пример #2
0
        public void AppendText()
        {
            string tempFile = Path.GetTempFileName();
            string expected = "This is a test.";

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            using (StreamWriter writer = efi.AppendText())
            {
                Assert.IsNotNull(writer);
                writer.Write(expected);
            }

            string actual = File.ReadAllText(tempFile);
            Assert.AreEqual(expected, actual);
        }
Пример #3
0
        public void Properties5()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            Assert.IsNotNull(efi.FileType);
            Assert.AreEqual(ExecutableType.Unknown, efi.ExecutableType);

            string systemPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.System);
            DirectoryInfo di = new DirectoryInfo(systemPath);
            tempFile = Path.Combine(di.Parent.FullName, "explorer.exe");
            efi = new ExtendedFileInfo(tempFile);
            Assert.AreEqual("Application", efi.FileType);
            Assert.AreEqual(ExecutableType.Windows, efi.ExecutableType);

            tempFile = Path.Combine(Path.Combine(di.Parent.FullName, "system32"), "at.exe");
            efi = new ExtendedFileInfo(tempFile);
            Assert.AreEqual(ExecutableType.Win32Console, efi.ExecutableType);

            tempFile = Path.Combine(Path.Combine(di.Parent.FullName, "system32"), "more.com");
            efi = new ExtendedFileInfo(tempFile);
            Assert.AreEqual(ExecutableType.DOS, efi.ExecutableType);

            tempFile = Path.Combine(di.Parent.FullName, "system.ini");
            efi = new ExtendedFileInfo(tempFile);
            Assert.AreEqual(ExecutableType.Unknown, efi.ExecutableType);
        }
Пример #4
0
        public void Properties4()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            efi.IsReadOnly = true;

            FileInfo fi = new FileInfo(tempFile);

            Assert.IsTrue((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly);

            fi.Attributes &= ~FileAttributes.ReadOnly;
        }
Пример #5
0
        public void Properties3()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            efi.CreationTime = new DateTime(2006, 1, 1);

            FileInfo fi = new FileInfo(tempFile);

            Assert.AreEqual(efi.CreationTime, fi.CreationTime);
        }
Пример #6
0
        public void Create()
        {
            string tempFile = Path.Combine(Path.GetTempPath(), "CreatedFile.txt");
            File.Delete(tempFile);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            using (FileStream stream = efi.Create())
            {
                Assert.IsTrue(File.Exists(tempFile));
            }
        }
Пример #7
0
 public void Constructor1()
 {
     ExtendedFileInfo efi = new ExtendedFileInfo(Path.GetTempFileName());
     Assert.IsNotNull(efi);
 }
Пример #8
0
        public void SetAccessControl()
        {
            string tempFile = Path.GetTempFileName();

            FileInfo fi = new FileInfo(tempFile);
            FileSecurity expected = fi.GetAccessControl(AccessControlSections.All);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            FileSecurity fileSecurity = new FileSecurity();
            fileSecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));

            efi.SetAccessControl(fileSecurity);

            Assert.AreNotEqual(expected.GetSecurityDescriptorBinaryForm(), efi.GetAccessControl().GetSecurityDescriptorBinaryForm());

            FileSecurity actualFileSecurity = File.GetAccessControl(tempFile);
            AuthorizationRuleCollection rules = actualFileSecurity.GetAccessRules(true, true, typeof(NTAccount));
            foreach (AuthorizationRule rule in rules)
            {
                FileSystemAccessRule accessRule = (FileSystemAccessRule)rule;

                if (accessRule.IdentityReference.Value == "Everyone")
                {
                    Assert.IsTrue(accessRule.AccessControlType == AccessControlType.Allow);
                    Assert.IsTrue(accessRule.FileSystemRights == FileSystemRights.FullControl);
                }
            }

            fi.SetAccessControl(expected);
        }
Пример #9
0
        public void Replace3()
        {
            string tempFile = Path.Combine(Path.GetTempPath(), "OriginalFile.txt");
            string tempFile2 = Path.Combine(Path.GetTempPath(), "NewFile.txt");
            string backupFile = Path.Combine(Path.GetTempPath(), "OriginalFileBackup.txt");
            string expected = "This is a test.";

            File.Delete(tempFile);
            File.Delete(tempFile2);
            File.Delete(backupFile);

            File.AppendAllText(tempFile, expected);
            File.AppendAllText(tempFile2, String.Empty);

            // Move the contents of tempFile into tempFile2
            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            efi.Replace(tempFile2, backupFile, true);

            Assert.IsTrue(File.Exists(backupFile));
            Assert.IsTrue(File.Exists(tempFile2));

            string actual = File.ReadAllText(tempFile2);
            Assert.AreEqual(expected, actual);
        }
Пример #10
0
        public void Open()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            using (FileStream stream = efi.Open(FileMode.Open))
            {
                Assert.IsNotNull(stream);
                Assert.IsTrue(stream.Length == 0);
            }

            tempFile = Path.GetTempFileName();
            efi = new ExtendedFileInfo(tempFile);
            using (FileStream stream = efi.Open(FileMode.Open, FileAccess.Read))
            {
                Assert.IsNotNull(stream);
                Assert.IsTrue(stream.Length == 0);
                Assert.IsTrue(stream.CanRead);
                Assert.IsFalse(stream.CanWrite);
            }

            tempFile = Path.GetTempFileName();
            efi = new ExtendedFileInfo(tempFile);
            using (FileStream stream = efi.Open(FileMode.Open, FileAccess.Read, FileShare.None))
            {
                Assert.IsNotNull(stream);
                Assert.IsTrue(stream.Length == 0);
                Assert.IsTrue(stream.CanRead);
                Assert.IsFalse(stream.CanWrite);

                try
                {
                    File.Open(tempFile, FileMode.Open);
                }
                catch (IOException)
                {
                    Assert.IsTrue(true);
                }
                catch (Exception e)
                {
                    Assert.Fail(e.Message);
                }
            }
        }
Пример #11
0
        public void GetAccessControl1()
        {
            string tempFile = Path.GetTempFileName();
            FileInfo fi = new FileInfo(tempFile);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            FileSecurity actual = efi.GetAccessControl(AccessControlSections.All);
            FileSecurity expected = fi.GetAccessControl(AccessControlSections.All);

            CollectionAssert.AreEqual(expected.GetSecurityDescriptorBinaryForm(), actual.GetSecurityDescriptorBinaryForm());
        }
Пример #12
0
        public void FileOwner()
        {
            string tempFile = Path.GetTempFileName();

            FileInfo fi = new FileInfo(tempFile);
            FileSecurity fs = fi.GetAccessControl(AccessControlSections.Owner);
            string expected = fs.GetOwner(typeof(NTAccount)).ToString();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);
            string actual = efi.FileOwner;

            Assert.AreEqual(expected, actual);
        }
Пример #13
0
        public void Encryption()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            efi.Encrypt();
            efi.Refresh();

            Assert.IsTrue((efi.Attributes & FileAttributes.Encrypted) == FileAttributes.Encrypted);

            efi.Decrypt();
            efi.Refresh();
            Assert.IsFalse((efi.Attributes & FileAttributes.Encrypted) == FileAttributes.Encrypted);
        }
Пример #14
0
        public void Delete()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            efi.Delete();

            Assert.IsFalse(File.Exists(tempFile));
        }
Пример #15
0
        public void Refresh()
        {
            string tempFile = Path.GetTempFileName();

            FileInfo fi = new FileInfo(tempFile);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            Assert.AreEqual(efi.Attributes, fi.Attributes);

            fi.Attributes |= FileAttributes.ReadOnly;
            efi.Refresh();

            Assert.AreEqual(efi.Attributes, fi.Attributes);

            fi.Attributes &= ~FileAttributes.ReadOnly;
        }
Пример #16
0
        public void OpenText()
        {
            string tempFile = Path.GetTempFileName();
            string expected = "This is a test.";

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            File.AppendAllText(tempFile, expected);

            string actual = String.Empty;
            using (StreamReader stream = efi.OpenText())
            {
                Assert.IsTrue(stream.BaseStream.CanRead);
                Assert.IsFalse(stream.BaseStream.CanWrite);

                Assert.IsTrue(stream.CurrentEncoding == Encoding.UTF8);
                actual = stream.ReadToEnd();
            }

            Assert.AreEqual(expected, actual);
        }
Пример #17
0
        public void OpenWrite()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            using (FileStream stream = efi.OpenWrite())
            {
                Assert.IsFalse(stream.CanRead);
                Assert.IsTrue(stream.CanWrite);
            }
        }
Пример #18
0
        public void Serialization()
        {
            string tempFile = Path.GetTempFileName();

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);
            byte[] data = null;

            using (MemoryStream stream = new MemoryStream())
            {
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(stream, efi);
                data = stream.ToArray();
            }

            Assert.IsNotNull(data);
            ConditionAssert.Greater(data.Length, 0);

            using (MemoryStream stream = new MemoryStream(data))
            {
                BinaryFormatter bf = new BinaryFormatter();
                ExtendedFileInfo efi2 = bf.Deserialize(stream) as ExtendedFileInfo;
                Assert.IsNotNull(efi2);
                Assert.AreEqual(efi.FullName, efi2.FullName);
            }
        }
Пример #19
0
        public void Properties()
        {
            string tempFile = Path.GetTempFileName();
            FileInfo fi = new FileInfo(tempFile);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            Assert.AreEqual(efi.Name, fi.Name);
            Assert.AreEqual(efi.LastWriteTimUtc, fi.LastWriteTimeUtc);
            Assert.AreEqual(efi.LastWriteTime, fi.LastWriteTime);
            Assert.AreEqual(efi.LastAccessTimeUtc, fi.LastAccessTimeUtc);
            Assert.AreEqual(efi.LastAccessTime, fi.LastAccessTime);
            Assert.AreEqual(efi.FullName, fi.FullName);
            Assert.AreEqual(efi.Extension, fi.Extension);
            Assert.AreEqual(efi.Exists, fi.Exists);
            Assert.AreEqual(efi.CreationTime, fi.CreationTime);
            Assert.AreEqual(efi.CreateTimeUtc, fi.CreationTimeUtc);
            Assert.AreEqual(efi.Attributes, fi.Attributes);
            Assert.AreEqual(efi.Directory.FullName, fi.Directory.FullName);
            Assert.AreEqual(efi.DirectoryName, fi.DirectoryName);
            Assert.AreEqual(efi.IsReadOnly, fi.IsReadOnly);
            Assert.AreEqual(efi.Length, fi.Length);
        }
Пример #20
0
        public void ToStringTest()
        {
            string tempFile = Path.GetTempFileName();

            FileInfo fi = new FileInfo(tempFile);
            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            Assert.AreEqual(fi.ToString(), efi.ToString());
        }
Пример #21
0
        public void Properties1()
        {
            string tempFile = Path.GetTempFileName();
            FileVersionInfo fi = FileVersionInfo.GetVersionInfo(tempFile);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            Assert.IsNotNull(efi);

            Assert.AreEqual(efi.Comments, fi.Comments);
            Assert.AreEqual(efi.CompanyName, fi.CompanyName);
            Assert.AreEqual(efi.FileBuildPart, fi.FileBuildPart);
            Assert.AreEqual(efi.FileDescription, fi.FileDescription);
            Assert.AreEqual(efi.FileMajorPart, fi.FileMajorPart);
            Assert.AreEqual(efi.FileMinorPart, fi.FileMinorPart);
            Assert.AreEqual(efi.FileName, fi.FileName);
            Assert.AreEqual(efi.FilePrivatePart, fi.FilePrivatePart);
            Assert.AreEqual(efi.FileVersion, fi.FileVersion);
            Assert.AreEqual(efi.InternalName, fi.InternalName);
            Assert.AreEqual(efi.IsDebug, fi.IsDebug);
            Assert.AreEqual(efi.IsPatched, fi.IsPatched);
            Assert.AreEqual(efi.IsPreRelease, fi.IsPreRelease);
            Assert.AreEqual(efi.IsPrivateBuild, fi.IsPrivateBuild);
            Assert.AreEqual(efi.IsSpecialBuild, fi.IsSpecialBuild);
            Assert.AreEqual(efi.Language, fi.Language);
            Assert.AreEqual(efi.LegalCopyright, fi.LegalCopyright);
            Assert.AreEqual(efi.LegalTrademarks, fi.LegalTrademarks);
            Assert.AreEqual(efi.OriginalFilename, fi.OriginalFilename);
            Assert.AreEqual(efi.PrivateBuild, fi.PrivateBuild);
            Assert.AreEqual(efi.ProductBuildPart, fi.ProductBuildPart);
            Assert.AreEqual(efi.ProductMajorPart, fi.ProductMajorPart);
            Assert.AreEqual(efi.ProductMinorPart, fi.ProductMinorPart);
            Assert.AreEqual(efi.ProductName, fi.ProductName);
            Assert.AreEqual(efi.ProductPrivatePart, fi.ProductPrivatePart);
            Assert.AreEqual(efi.ProductVersion, fi.ProductVersion);
            Assert.AreEqual(efi.SpecialBuild, fi.SpecialBuild);
        }
Пример #22
0
        public void CopyTo()
        {
            string tempFile = Path.GetTempFileName();
            string tempFile2 = Path.GetFileNameWithoutExtension(tempFile) + "Copy" + Path.GetExtension(tempFile);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            efi.CopyTo(tempFile2);

            Assert.IsTrue(File.Exists(tempFile2));
        }
Пример #23
0
        public void CopyTo2()
        {
            string tempFile = Path.GetTempFileName();
            string tempFile2 = Path.GetFileNameWithoutExtension(tempFile) + "Copy" + Path.GetExtension(tempFile);

            ExtendedFileInfo efi = new ExtendedFileInfo(tempFile);
            efi.CopyTo(tempFile2, true);

            Assert.IsTrue(File.Exists(tempFile2));

            try
            {
                efi.CopyTo(tempFile2, false);
            }
            catch (IOException)
            {
                Assert.IsTrue(true);
            }
            catch (Exception e)
            {
                Assert.Fail(e.Message);
            }
        }