tests/DotNetCommon.Test/Extensions/FileAndDirectoryExtensions/FileInfoTests.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DotNetCommon.Test.Extensions.FileAndDirectoryExtensions
{
    using System;
    using System.IO;
    using System.Linq;
    using System.Text;
    using NUnit.Framework;
    using Shouldly;
    using DotNetCommon.Extensions;

    [TestFixture]
    public class FileInfoTests : Context
    {
        [OneTimeSetUp]
        public void SetUp()
        {
            Given_a_temp_hidden_file();
            Given_a_temp_non_hidden_file();

            When_checking_if_the_files_are_hidden();
        }

        [Test]
        public void Then_isHidden_for_the_hidden_file_should_be_correct()
        {
            ResultOne.ShouldBeTrue();
        }
        
        [Test]
        public void Then_isHidden_for_the_non_hidden_file_should_be_correct()
        {
            ResultTwo.ShouldBeFalse();
        }

        [Test]
        public void When_reading_all_text_lines_in_file()
        {
            var fileInfo = new FileInfo(Path.GetRandomFileName());

            try
            {
                using (var writer = new StreamWriter(File.Open(fileInfo.FullName, FileMode.Create, FileAccess.Write, FileShare.Read)))
                {
                    writer.WriteLine("1stLine");
                    writer.WriteLine("2ndLine");
                    writer.Flush();

                    // This does not work
                    Should.Throw<IOException>(() => File.ReadAllLines(fileInfo.FullName))
                        .Message.ShouldStartWith($"The process cannot access the file '{fileInfo.FullName}' because it is being used by another process.");

                    // But this one does
                    var linesExplicitEncoding = fileInfo.ReadLines(Encoding.UTF8).ToArray();
                    linesExplicitEncoding.ShouldNotBeNull();
                    linesExplicitEncoding.Length.ShouldBe(2);
                    linesExplicitEncoding[0].ShouldBe("1stLine");
                    linesExplicitEncoding[1].ShouldBe("2ndLine");

                    // So does this one
                    var linesDefaultEncoding = fileInfo.ReadLines().ToArray();
后面还有 62 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。