public void EnumerateDirectories_Two_files_in_sub_sub_dirs()
        {
            var         ffs = new FakeFileSystem(DateTimeProvider.Singleton);
            IFileSystem fs  = ffs;

            ffs.SetFileFromUtf8String(@"C:\AAA\BBB\CCC\a1.txt", "");
            ffs.SetFileFromUtf8String(@"C:\AAA\BBB\DDD\a2.txt", "");

            var dirs = fs.EnumerateDirectories(@"C:\AAA");

            dirs.ToArray().ShouldBe(new[] { @"C:\AAA\BBB" });
        }
Пример #2
0
        public void Read_SeveralTimes_VerifyReload()
        {
            var       fileSystem   = new FakeFileSystem(DateTimeProvider.Singleton);
            var       path         = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.xml");
            IFakeFile settingsFile = fileSystem.SetFileFromUtf8String(path, ExpectedSettingsFile1);

            DateTime currentTime = new DateTime(2016, 1, 1, 12, 0, 0);

            var dateTimeProviderMock = new Mock <IDateTimeProvider>();

            dateTimeProviderMock
            .Setup(x => x.Time())
            .Returns(() => currentTime);

            var settingsInternal = new SettingsInternal(fileSystem, dateTimeProviderMock.Object);

            var value = settingsInternal.GetSetting("key"); // should cause reload

            currentTime = currentTime.AddSeconds(32);
            value       = settingsInternal.GetSetting("key");

            currentTime = currentTime.AddSeconds(32); // should cause reload
            value       = settingsInternal.GetSetting("key");

            FileAccessInfo fileAccessInfo = fileSystem.GetFileAccessInfo(path);

            Assert.That(fileAccessInfo.Reads, Is.EqualTo(2));
            Assert.That(fileAccessInfo.Writes, Is.EqualTo(0));
        }
        private IFakeFile CreateLogFile(DateTime date, string content, string rollNumber = "")
        {
            DateTime now = _now;

            _now = date; // By setting the "_now" the virtual file will have the correct time stamp.
            var file = _fileSystem.SetFileFromUtf8String(LOG_DIR + $"{date:yyyyMMdd}-MyApp-MyLog.MyExt{rollNumber}", content);

            _now = now;
            return(file);
        }
        public void EnumerateDirectories_One_file_in_dir()
        {
            var         ffs = new FakeFileSystem(DateTimeProvider.Singleton);
            IFileSystem fs  = ffs;

            ffs.SetFileFromUtf8String(@"C:\AAA\a1.txt", "");

            var dirs = fs.EnumerateDirectories(@"C:\AAA");

            dirs.ToArray().ShouldBe(new string[0]);
        }
        public void Initialize_LogWriting_When_There_Is_A_Rolled_File_On_Disk()
        {
            var activeLogfilePath  = Path.Combine(LOG_DIR, $"{_currentTime:yyyyMMdd}-App-Log.txt");
            var rolled1LogfilePath = Path.Combine(LOG_DIR, $"{_currentTime:yyyyMMdd}-App-Log.txt.1");
            var rolled2LogfilePath = Path.Combine(LOG_DIR, $"{_currentTime:yyyyMMdd}-App-Log.txt.2");

            var activeLogfileContent = new string('1', ROLL_FILE_SIZE_THRESHOLD);
            var rolledLogfileContent = new string('2', ROLL_FILE_SIZE_THRESHOLD);

            _fileSystem.SetFileFromUtf8String(activeLogfilePath, activeLogfileContent);
            _fileSystem.SetFileFromUtf8String(rolled1LogfilePath, rolledLogfileContent);


            _fileWriterLogItemHandler.Add(new TestLogItem(_currentTime, "Hello, Log!"));


            _fileSystem.GetFile(activeLogfilePath).ContentAsUtf8String.ShouldContain("Hello, Log!");
            _fileSystem.GetFile(rolled1LogfilePath).ContentAsUtf8String.ShouldBe(activeLogfileContent);
            _fileSystem.GetFile(rolled2LogfilePath).ContentAsUtf8String.ShouldBe(rolledLogfileContent);
        }
        public void EnumerateDirectories_One_file_in_sub_dir_and_same_ensured_dir()
        {
            var         ffs = new FakeFileSystem(DateTimeProvider.Singleton);
            IFileSystem fs  = ffs;

            ffs.SetFileFromUtf8String(@"C:\AAA\BBB\a1.txt", "");
            fs.EnsureDirectory(@"C:\AAA\BBB");

            var dirs = fs.EnumerateDirectories(@"C:\AAA");

            dirs.ToArray().ShouldBe(new[] { @"C:\AAA\BBB" });
        }
Пример #7
0
        public void Write()
        {
            var fileSystem = new FakeFileSystem(DateTimeProvider.Singleton);
            var path       = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.xml");

            fileSystem.SetFileFromUtf8String(path, ExpectedSettingsFile1);

            var settingsInternal = new SettingsInternal(fileSystem, DateTimeProvider.Singleton);

            settingsInternal.SetSetting("key", "value2");

            XmlTestSupport.GetComparableXml(fileSystem.GetFile(path).ContentAsUtf8String)
            .ShouldBe("<?xml version=\"1.0\" encoding=\"utf-8\"?><root><node key=\"key\" value=\"value2\" /></root>");
        }