public ConfigRepository() { _config = new ConfigFile(); _config.LoadOrCreate(); var profileFilePaths = FileHelper.FileSystem.Directory.GetFiles( Environment.Instance.SiteReplicatorPath, "*.publishSettings"); _sites = new HashSet<Site>(); foreach (var profilePaths in profileFilePaths) { _sites.Add(new Site(profilePaths)); } }
public void LoadOrCreateConfigTest() { ConfigFile config = null; List<string> dirs = new List<string>() { @"c:\test1", @"c:\test2", @"c:\test3", @"c:\test4" }; Dictionary<string, MockFileData> tests = new Dictionary<string, MockFileData>(); tests.Add(Path.Combine(dirs[0], "config.xml"), new MockFileData( "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<config>" + "</config>")); tests.Add(Path.Combine(dirs[1], "config.xml"), new MockFileData( "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<config>" + " <skipRules>" + " <skipRule></skipRule>" + " </skipRules>" + "</config>")); tests.Add(Path.Combine(dirs[2], "config.xml"), new MockFileData( "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<config>" + " <skipRules>" + " <skipRule isDirectory=\"true\">skip1</skipRule>" + " </skipRules>" + "</config>")); tests.Add(Path.Combine(dirs[3], "config.xml"), new MockFileData( "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<config>" + " <skipRules>" + " <skipRule isDirectory=\"false\">skip1</skipRule>" + " <skipRule>skip2</skipRule>" + " </skipRules>" + "</config>")); var expected = new[]{ new List<SkipRule>(), new List<SkipRule>(){new SkipRule()}, new List<SkipRule>(){new SkipRule(){Expression = "skip1", IsDirectory = true}}, new List<SkipRule>(){ new SkipRule(){Expression = "skip1", IsDirectory = false}, new SkipRule(){Expression = "skip2", IsDirectory = false} } }; FileHelper.FileSystem = new MockFileSystem(tests); for(int i = 0; i < dirs.Count; i++) { _mockEnv.Setup(m => m.SiteReplicatorPath).Returns(dirs[i]); config = new ConfigFile(); config.LoadOrCreate(); VerifySkipEnumerables(expected[i].AsEnumerable(), config.SkipRules); } // Test file creation _mockEnv.Setup(m => m.SiteReplicatorPath).Returns(@"c:\foo"); config = new ConfigFile(); config.LoadOrCreate(); Assert.IsTrue(FileHelper.FileSystem.File.Exists(@"c:\foo\config.xml"), "Didn't create a new config file"); VerifySkipEnumerables(new List<SkipRule>().AsEnumerable(), config.SkipRules); }
public void SaveConfigTest() { var tests = new[]{ new List<SkipRule>(), new List<SkipRule>(){ new SkipRule(){ Expression ="skip1"}}, new List<SkipRule>(){new SkipRule(){ Expression = "skip1", IsDirectory = true}, new SkipRule(){Expression = "skip2", IsDirectory = false}} }; System.IO.Abstractions.FileBase MockFile = FileHelper.FileSystem.File; for (int i = 0; i < tests.Length; i++) { ConfigFile config = new ConfigFile(); config.SetSkips(tests[i]); config.Save(); Assert.IsTrue(MockFile.Exists(@"c:\config.xml")); config = new ConfigFile(); config.LoadOrCreate(); VerifySkipEnumerables(tests[i].AsEnumerable(), config.SkipRules); } }