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" }); }
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" }); }
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>"); }