public void TryRemoveFile_should_never_throw_exceptions()
 {
     using (var folder = new TemporaryFolder())
     {
         var file = folder.GetFileName("log");
         using (System.IO.File.Create(file))
             fileSystem.TryRemoveFile(file).Should().Be(!RuntimeInformation.IsOSPlatform(OSPlatform.Windows));
     }
 }
示例#2
0
 public void TryRemoveFile_should_never_throw_exceptions()
 {
     using (var folder = new TemporaryFolder())
     {
         var file = folder.GetFileName("log");
         using (System.IO.File.Create(file))
             fileSystem.TryRemoveFile(file).Should().BeFalse();
     }
 }
        public void OpenFile_should_use_shared_handles()
        {
            using (var folder = new TemporaryFolder())
            {
                var file = folder.GetFileName("log");
                using (var writer = fileSystem.OpenFile(file, FileOpenMode.Append, Encoding.UTF8, 4096))
                {
                    writer.WriteLine("test");
                    writer.Flush();

                    using (var reader = new StreamReader(new FileStream(file, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)))
                        reader.ReadLine().Should().Be("test");
                }
            }
        }
示例#4
0
        public void TryOpenFile_should_return_null_if_locked()
        {
            var settings = new FileLogSettings
            {
                UseSeparateFileOnConflict = false
            };

            using (var folder = new TemporaryFolder())
            {
                var file = folder.GetFileName("log");
                using (var writer1 = fileSystem.TryOpenFile(file, settings))
                    using (var writer2 = fileSystem.TryOpenFile(file, settings))
                    {
                        writer1.Should().NotBeNull();
                        writer2.Should().BeNull();
                    }
            }
        }
示例#5
0
        public void TryOpenFile_should_use_shared_handles_if_specified()
        {
            var settings = new FileLogSettings
            {
                FileShare = FileShare.ReadWrite
            };

            using (var folder = new TemporaryFolder())
            {
                var file = folder.GetFileName("log");
                using (var writer = fileSystem.TryOpenFile(file, settings))
                {
                    writer.WriteLine("test");
                    writer.Flush();

                    using (var reader = new StreamReader(new FileStream(file, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)))
                        reader.ReadLine().Should().Be("test");
                }
            }
        }
示例#6
0
        public void TryOpenFile_should_append_suffix_if_locked()
        {
            var settings = new FileLogSettings
            {
                UseSeparateFileOnConflict = true
            };

            using (var folder = new TemporaryFolder())
            {
                var file = folder.GetFileName("log");
                using (var writer1 = fileSystem.TryOpenFile(file, settings))
                    using (var writer2 = fileSystem.TryOpenFile(file, settings))
                    {
                        writer1.WriteLine("test1");
                        writer2.WriteLine("test2");
                    }

                System.IO.File.ReadAllLines(file).Should().BeEquivalentTo("test1");
                System.IO.File.ReadAllLines(file + "-1").Should().BeEquivalentTo("test2");
            }
        }