public void CreateGroups_GroupsInDistFiles_CanReadAll() { var path = FileLocator.GetFileDistributedWithApplication("myWorkSafe.ini"); var reader = new GroupIniFileReader(path); var groups = reader.CreateGroups().ToArray(); Assert.That(groups.Count(), Is.GreaterThan(5)); }
public void CreateGroups_MyDocumentsBasedRootFolder_Converted() { using (var f = FileFromContents( @"[James] rootFolder= $MyDocuments$")) { var reader = new GroupIniFileReader(f.Path); var groups = reader.CreateGroups().ToArray(); Assert.IsFalse(groups[0].RootFolder.Contains("$")); Assert.IsTrue(Directory.Exists(groups[0].RootFolder)); } }
public void CreateGroups_LiteralRootFolder_Stored() { using (var f = FileFromContents( @" [James] rootFolder= c:\foo\bar #blah")) { var reader = new GroupIniFileReader(f.Path); var groups = reader.CreateGroups().ToArray(); Assert.That(groups[0].RootFolder, Is.EqualTo(@"c:\foo\bar")); } }
public void CreateGroups_RegistryKeyWithExplicitValueSpecified_Converted() { using (var f = FileFromContents( @"[ARegistryExample] rootFolder= HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework,InstallRoot")) { var reader = new GroupIniFileReader(f.Path); var groups = reader.CreateGroups().ToArray(); Assert.IsFalse(groups[0].RootFolder.Contains("$")); Assert.IsTrue(Directory.Exists(groups[0].RootFolder)); } }
public void CreateGroups_FoundFolderOverridesMissingFolder() { using (var f = FileFromContents( @" [James] rootFolder= c:\notreallythere\bar rootFolder= c:\")) { var reader = new GroupIniFileReader(f.Path); var groups = reader.CreateGroups().ToArray(); Assert.That(groups[0].RootFolder, Is.EqualTo(@"c:\")); } }
public void CreateGroups_ExplicitName_OverridesSection() { using (var f = FileFromContents( @" [James] name= Jim #nickname " )) { var reader = new GroupIniFileReader(f.Path); var groups = reader.CreateGroups().ToArray(); Assert.That(groups[0].Name, Is.EqualTo("Jim")); } }
public void CreateGroups_GroupsInDistFiles_SeesCertainGroups() { var path = FileLocator.GetFileDistributedWithApplication("myWorkSafe.ini"); var reader = new GroupIniFileReader(path); var groups = reader.CreateGroups().ToArray(); //my documents Assert.That(groups.Any(g => g.RootFolder == Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))); //desktop Assert.That(groups.Any(g => g.RootFolder == Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory))); //music Assert.That(groups.Any(g => g.RootFolder == Environment.GetFolderPath(Environment.SpecialFolder.MyMusic))); //pictures Assert.That(groups.Any(g => g.RootFolder == Environment.GetFolderPath(Environment.SpecialFolder.MyPictures))); }
public void CreateGroups_OnSecondRun_LaterGroupsTakePriority() { using (var first = FileFromContents(@"[original] rootFolder=$MyDocuments$" )) using (var second = FileFromContents(@"[priority] rootFolder=$Desktop$" )) { var reader = new GroupIniFileReader(first.Path); var groups = reader.CreateGroups(); reader = new GroupIniFileReader(second.Path); reader.CreateGroups(groups); Assert.That(groups.ToArray()[0].Name, Is.EqualTo("priority")); Assert.That(groups.ToArray()[1].Name, Is.EqualTo("original")); } }
public void CreateGroups_MultipleFileExcludes_GetsAll() { using (var f = FileFromContents( @" [first] excludeFile=*.one excludeFile=*.two " )) { var reader = new GroupIniFileReader(f.Path); var groups = reader.CreateGroups().ToArray(); Assert.That(groups.Count(), Is.EqualTo(1)); Assert.That(groups[0].Filter.FileNameExcludes.Count(), Is.EqualTo(2)); } }
public void CreateGroups_OnSecondRun_SkipTagClearsRootFolder() { using (var first = FileFromContents(@"[docs] rootFolder=$MyDocuments$" )) using (var second = FileFromContents(@"[docs] skip" )) { var reader = new GroupIniFileReader(first.Path); var groups = reader.CreateGroups(); Assert.That(groups.First().RootFolder == Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); reader = new GroupIniFileReader(second.Path); reader.CreateGroups(groups); Assert.That(string.IsNullOrEmpty(groups.First().RootFolder)); Assert.That(groups.Count(), Is.EqualTo(1)); } }
public void CreateGroups_MultipleFolderExcludes_GetsAll() { using (var f = FileFromContents( @" [first] excludeFolder=one folder #with a comment #another comment excludeFolder= second folder # a last comment " )) { var reader = new GroupIniFileReader(f.Path); var groups = reader.CreateGroups().ToArray(); Assert.That(groups.Count(), Is.EqualTo(1)); Assert.That(groups[0].Filter.SubdirectoryExcludes.Count(), Is.EqualTo(2)); Assert.That(groups[0].Filter.SubdirectoryExcludes.ToArray()[1], Is.EqualTo("second folder")); } }
private void ReadInGroups(string destinationFolderPath) { var path = FileLocator.GetFileDistributedWithApplication("myWorkSafe.ini"); _groups = new List <FileGroup>(); var factoryGroupsReader = new GroupIniFileReader(path); factoryGroupsReader.CreateGroups(_groups); //look for a user-override file var dir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); dir = Path.Combine(dir, "myWorkSafe"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); //so it's easier for people to find } var ini = Path.Combine(dir, "myWorkSafe.ini"); if (File.Exists(ini)) { Progress.WriteMessage("Found settings override in users's application data."); var customGroupsReader = new GroupIniFileReader(ini); customGroupsReader.CreateGroups(_groups); } else { File.WriteAllText(ini, "#Enter your own or modified groups here, to customize myWorkSafe behavior"); } //look for override file on the drive itself var iniPath = Path.Combine(destinationFolderPath, "myWorkSafe.ini"); if (File.Exists(iniPath)) { Progress.WriteMessage("Found settings override on USB device."); var customGroupsReader = new GroupIniFileReader(iniPath); customGroupsReader.CreateGroups(_groups); } }