Пример #1
0
        /// <summary>
        /// When overridden in a derived class, executes the task.
        /// </summary>
        /// <returns>
        /// true if the task successfully executed; otherwise, false.
        /// </returns>
        public override bool Execute()
        {
            RenderConfigConfig config = new RenderConfigConfig();

            config.BreakOnNoMatch                = breakOnNoMatch;
            config.CleanOutput                   = cleanOutput;
            config.ConfigFile                    = configFile;
            config.Configuration                 = configuration;
            config.DeleteOutputDirectory         = deleteOutputDirectory;
            config.OutputDirectory               = outputDirectory;
            config.InputDirectory                = inputDirectory;
            config.SubDirectoryEachConfiguration = SubDirectoryEachConfiguration;
            config.PreserveSourceStructure       = PreserveSourceStructure;

            IRenderConfigLogger log = new MSBuildLogger(Log);

            Boolean returnVal = true;

            try
            {
                RenderConfigEngine.RunAllConfigurations(config, log);
            }
            catch (Exception i)
            {
                log.LogError("Failed to render configuration : " + i.Message);
                return(false);
            }

            return(returnVal);
        }
 public void Setup()
 {
     RenderConfigConfig config = GetConfigObject();
     IRenderConfigLogger log = new ConsoleLogger();
     RenderConfigEngine engine = new RenderConfigEngine(config, log);
     engine.Render();
 }
 public void CheckXMLMultipleVariableSubstitution()
 {
     engine = new RenderConfigEngine(config, log);
     engine.Render(); 
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName, "variablesubmultiple.xml"));
     Assert.AreEqual(doc.SelectSingleNode("/configuration/Random").InnerText, string.Concat(Environment.GetEnvironmentVariable("RenderTestVar1"), string.Concat(Environment.GetEnvironmentVariable("RenderTestVar2"))));
 }
        public void Setup()
        {
            RenderConfigConfig  config = GetConfigObject();
            IRenderConfigLogger log    = new ConsoleLogger();
            RenderConfigEngine  engine = new RenderConfigEngine(config, log);

            engine.Render();
        }
Пример #5
0
        public void CheckINIMultipleVariableSubstitutionInterspersed()
        {
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            IConfigSource ini = new IniConfigSource(Path.Combine(od.FullName, "test.ini"));

            Assert.AreEqual(ini.Configs["Logging"].Get("Expansion2"), string.Concat(Environment.GetEnvironmentVariable("RenderTestVar1"), "blah", Environment.GetEnvironmentVariable("RenderTestVar2")));
        }
        public void CanReplaceInFile()
        {
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            string text = File.ReadAllText(String.Concat("testing", Path.DirectorySeparatorChar, "text", Path.DirectorySeparatorChar,"textreplace.txt"));
            Assert.IsTrue(text.Contains("Replacement!!!"));
        }
Пример #7
0
        public void CanReplaceInFile()
        {
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            string text = File.ReadAllText(String.Concat("testing", Path.DirectorySeparatorChar, "text", Path.DirectorySeparatorChar, "textreplace.txt"));

            Assert.IsTrue(text.Contains("Replacement!!!"));
        }
Пример #8
0
        public void CheckINISingleVariableSubstitution()
        {
            Environment.SetEnvironmentVariable("RenderTestVar1", "EnvVarBlah");
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            IConfigSource ini = new IniConfigSource(Path.Combine(od.FullName, "test.ini"));

            Assert.AreEqual(ini.Configs["Logging"].Get("File Name"), Environment.GetEnvironmentVariable("RenderTestVar1"));
        }
Пример #9
0
        public void CheckXMLMultipleVariableSubstitution()
        {
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "variablesubmultiple.xml"));
            Assert.AreEqual(doc.SelectSingleNode("/configuration/Random").InnerText, string.Concat(Environment.GetEnvironmentVariable("RenderTestVar1"), string.Concat(Environment.GetEnvironmentVariable("RenderTestVar2"))));
        }
 public void AddAttributeWithoutNameSpace()
 {
     config.Configuration = "xmladd";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmladd.xml"));
     Assert.IsNotNull(doc.SelectSingleNode("/configuration/configSections/section[@value='xmladd']"));
 }
Пример #11
0
 public void BadConfigDoesntLoad()
 {
     config.ConfigFile      = String.Concat("examples", Path.DirectorySeparatorChar, "config.bad.xml");
     config.Configuration   = "preservestructure";
     config.OutputDirectory = "blah";
     config.BreakOnNoMatch  = false;
     engine = new RenderConfigEngine(config, log);
     Assert.Throws <ApplicationException>(delegate { engine.Render(); });
 }
 public void AddCDATAWithoutNameSpace()
 {
     config.Configuration = "xmladd";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmladd.xml"));
     Assert.IsNotNull(doc.SelectSingleNode("/configuration/nhibernate/Node"));
 }
Пример #13
0
 public void NonExistentDependencyCausesException()
 {
     config.ConfigFile = String.Concat("examples", Path.DirectorySeparatorChar, "config.bad.xml");
     config.Configuration = "incorrectdependency";
     config.OutputDirectory = String.Concat("testing",Path.DirectorySeparatorChar,"incorrectdependency");
     config.InputDirectory = "TestFiles";
     RenderConfigEngine engine = new RenderConfigEngine(config, log);
     Assert.Throws<ApplicationException>(delegate { engine.Render(); });
 }
Пример #14
0
        public void NonExistentDependencyCausesException()
        {
            config.ConfigFile      = String.Concat("examples", Path.DirectorySeparatorChar, "config.bad.xml");
            config.Configuration   = "incorrectdependency";
            config.OutputDirectory = String.Concat("testing", Path.DirectorySeparatorChar, "incorrectdependency");
            config.InputDirectory  = "TestFiles";
            RenderConfigEngine engine = new RenderConfigEngine(config, log);

            Assert.Throws <ApplicationException>(delegate { engine.Render(); });
        }
Пример #15
0
        public void MultipleConfigurationsOutputToSubDirectories()
        {
            string outputDir = String.Concat(config.OutputDirectory, Path.DirectorySeparatorChar, "multiconfigsub");

            config.Configuration   = "copy,copy2";
            config.OutputDirectory = outputDir;
            RenderConfigEngine.RunAllConfigurations(config, log);
            Assert.IsTrue(File.Exists(Path.Combine(od.FullName, String.Concat(outputDir, Path.DirectorySeparatorChar, "copy", Path.DirectorySeparatorChar, "test.ns.xml"))));
            Assert.IsTrue(File.Exists(Path.Combine(od.FullName, String.Concat(outputDir, Path.DirectorySeparatorChar, "copy2", Path.DirectorySeparatorChar, "test.ns.xml"))));
        }
Пример #16
0
        public void MultipleDependencyCheck()
        {
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            Assert.IsTrue(File.Exists(Path.Combine(od.FullName, "MultipleDependencies.xml")));
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "multipledependencies.xml"));
            Assert.AreEqual(doc.SelectSingleNode("/configuration/Random").InnerText, "Child1");
        }
Пример #17
0
        public void AddAttributeWithNameSpace()
        {
            config.Configuration = "xmladdns";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmladd.ns.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/r:configuration/r:configSections/r:section[@value='xmladd']", GetManager(doc)));
        }
Пример #18
0
        public void DeleteNodeWithNameSpace()
        {
            config.Configuration = "xmldeletens";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmldelete.ns.xml"));
            Assert.IsNull(doc.SelectSingleNode("/r:configuration/r:configSections/r:section", GetManager(doc)));
        }
Пример #19
0
        public void AddCDATAWithoutNameSpace()
        {
            config.Configuration = "xmladd";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmladd.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/configuration/nhibernate/Node"));
        }
Пример #20
0
        public void AddNodeValueWithNameSpace()
        {
            config.Configuration = "xmladdns";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmladd.ns.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/r:configuration/r:nhibernate", GetManager(doc)).InnerText);
        }
Пример #21
0
        public void DeleteNodeByAttributeValueWithNameSpace()
        {
            config.Configuration = "xmldeletens";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmldelete.ns.xml"));
            Assert.IsNull(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@key='hibernate.dialect']", GetManager(doc)));
        }
Пример #22
0
        public void UpdateAttributeWithNameSpace()
        {
            config.Configuration = "xmlupdatens";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmlupdate.ns.xml"));
            Assert.AreEqual(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@key='hibernate.dialect']", GetManager(doc)).Attributes["value"].Value, "xmlupdate");
        }
Пример #23
0
        public void UpdateNodeWithNameSpace()
        {
            config.Configuration = "xmlupdatens";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmlupdate.ns.xml"));
            Assert.AreEqual(doc.SelectSingleNode("/r:configuration/r:Random", GetManager(doc)).InnerText, "xmlupdate");
        }
Пример #24
0
        public void CanUseXpathWithForwardSlashData()
        {
            config.Configuration = "xpathtest";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xpathtest.ns.xml"));
            Assert.IsNull(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@key='test/value']", GetManager(doc)));
        }
Пример #25
0
        public void ExceptionOnUpdateMissingKey()
        {
            RenderConfigConfig config = GetConfigObject();

            config.BreakOnNoMatch = true;
            config.Configuration  = "inimissingkey";
            IRenderConfigLogger log    = new ConsoleLogger();
            RenderConfigEngine  engine = new RenderConfigEngine(config, log);

            Assert.Throws <System.Exception>(delegate { engine.Render(); });
        }
Пример #26
0
        public void CanReferenceInputDirectory()
        {
            config.Configuration   = "inputdirectory";
            config.OutputDirectory = String.Concat("testing", Path.DirectorySeparatorChar, "InputDirectory");
            config.InputDirectory  = "Examples";
            config.BreakOnNoMatch  = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(File.Exists(String.Concat("testing", Path.DirectorySeparatorChar, "InputDirectory", Path.DirectorySeparatorChar, "test.xml")));
        }
Пример #27
0
        public void DeleteAttributeWithoutNameSpace()
        {
            config.Configuration = "xmldelete";
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            XmlDocument doc = new XmlDocument();

            doc.Load(Path.Combine(od.FullName, "xmldelete.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/configuration/nhibernate/add[@key='hibernate.connection.driver_class']"));
            Assert.IsNull(doc.SelectSingleNode("/configuration/nhibernate/add[@key='hibernate.connection.driver_class']").Attributes["Value"]);
        }
Пример #28
0
        public void IncludedFullFilesAvailable()
        {
            string dir = String.Concat("testing", Path.DirectorySeparatorChar, "FullIncluded");

            config.ConfigFile      = String.Concat("examples", Path.DirectorySeparatorChar, "config.include.full.xml");
            config.Configuration   = "included";
            config.OutputDirectory = dir;
            config.BreakOnNoMatch  = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(File.Exists(String.Concat(dir, Path.DirectorySeparatorChar, "included.xml")));
        }
Пример #29
0
        public void CanPreserveSourceStructure()
        {
            CreateTestFilesDirectory();

            config.Configuration           = "preservestructure";
            config.OutputDirectory         = String.Concat("testing", Path.DirectorySeparatorChar, "PreserveStructure");
            config.PreserveSourceStructure = true;
            config.BreakOnNoMatch          = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(File.Exists(String.Concat("testing", Path.DirectorySeparatorChar, "preservestructure", Path.DirectorySeparatorChar, "TestFiles", Path.DirectorySeparatorChar, "test.xml")));
            Directory.Delete(String.Concat("examples", Path.DirectorySeparatorChar, "testfiles"), true);
        }
Пример #30
0
        public void ReplacementResultingInInvalidXmlThrowsException()
        {
            RenderConfigConfig config = new RenderConfigConfig();

            config.ConfigFile      = String.Concat("examples", Path.DirectorySeparatorChar, "config.xml.xml");
            config.Configuration   = "xmlreplacebad";
            config.OutputDirectory = String.Concat("testing", Path.DirectorySeparatorChar, "xmlreplace");
            config.InputDirectory  = "examples";
            config.BreakOnNoMatch  = false;
            IRenderConfigLogger log    = new ConsoleLogger();
            RenderConfigEngine  engine = new RenderConfigEngine(config, log);

            Assert.Throws <XmlException>(delegate { engine.Render(); });
        }
Пример #31
0
        public void DoesntPreserveSourceStructureWhenNotAsked()
        {
            CreateTestFilesDirectory();

            string dir = String.Concat("testing", Path.DirectorySeparatorChar, "DoesntPreserveStructure");

            config.Configuration   = "preservestructure";
            config.OutputDirectory = dir;
            config.BreakOnNoMatch  = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(!File.Exists(String.Concat(dir, Path.DirectorySeparatorChar, "TestFiles", Path.DirectorySeparatorChar, "test.xml")));
            Assert.True(File.Exists(String.Concat(dir, Path.DirectorySeparatorChar, "test.xml")));
        }
Пример #32
0
        public void ReplaceRepeatingSubString()
        {
            RenderConfigConfig config = GetConfigObject();

            config.BreakOnNoMatch = true;
            config.Configuration  = "inireplace";
            IRenderConfigLogger log    = new ConsoleLogger();
            RenderConfigEngine  engine = new RenderConfigEngine(config, log);

            engine.Render();
            IConfigSource ini = new IniConfigSource(Path.Combine(od.FullName, "test.ini"));

            Assert.IsTrue(ini.Configs["Logging"].Contains("Replacement1"));
            Assert.IsTrue(ini.Configs["Logging"].Contains("Replacement2"));
            Assert.IsTrue(ini.Configs["Logging"].Contains("Replacement3"));
        }
Пример #33
0
        public void SettingVariables()
        {
            RenderConfigConfig config = new RenderConfigConfig();

            config.ConfigFile      = String.Concat("examples", Path.DirectorySeparatorChar, "config.xml.xml");
            config.Configuration   = "variabletest1";
            config.OutputDirectory = String.Concat("testing", Path.DirectorySeparatorChar, "variabletest1");
            config.InputDirectory  = "examples";
            config.BreakOnNoMatch  = false;
            IRenderConfigLogger log    = new ConsoleLogger();
            RenderConfigEngine  engine = new RenderConfigEngine(config, log);

            engine.Render();

            XmlDocument doc = new XmlDocument();

            doc.Load(String.Concat("testing", Path.DirectorySeparatorChar, "variabletest1", Path.DirectorySeparatorChar, "test.xml"));
            Assert.AreEqual(doc.SelectSingleNode("/configuration/Random").InnerText, "variabletest1");
        }
Пример #34
0
        public void ReplaceMultipleSubString()
        {
            RenderConfigConfig config = new RenderConfigConfig();

            config.ConfigFile      = String.Concat("examples", Path.DirectorySeparatorChar, "config.xml.xml");
            config.Configuration   = "xmlreplace";
            config.OutputDirectory = String.Concat("testing", Path.DirectorySeparatorChar, "xmlreplace");
            config.InputDirectory  = "examples";
            config.BreakOnNoMatch  = false;
            IRenderConfigLogger log    = new ConsoleLogger();
            RenderConfigEngine  engine = new RenderConfigEngine(config, log);

            engine.Render();

            XmlDocument doc = new XmlDocument();

            doc.Load(String.Concat("testing", Path.DirectorySeparatorChar, "xmlreplace", Path.DirectorySeparatorChar, "xmlreplace.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/configuration/ReplacementRandom"));

            doc.Load(String.Concat("testing", Path.DirectorySeparatorChar, "xmlreplace", Path.DirectorySeparatorChar, "xmlreplace.ns.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/r:configuration/r:ReplacementRandom", GetManager(doc)));
        }
Пример #35
0
        public void CanReferenceInputDirectory()
        {
            config.Configuration = "inputdirectory";
            config.OutputDirectory = String.Concat("testing",Path.DirectorySeparatorChar,"InputDirectory");
            config.InputDirectory = "Examples";
            config.BreakOnNoMatch = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(File.Exists(String.Concat("testing",Path.DirectorySeparatorChar,"InputDirectory",Path.DirectorySeparatorChar,"test.xml")));
        }
 public void AddNodeValueWithNameSpace()
 {
     config.Configuration = "xmladdns";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmladd.ns.xml"));
     Assert.IsNotNull(doc.SelectSingleNode("/r:configuration/r:nhibernate", GetManager(doc)).InnerText);
 }
 public void DeleteNodeByAttributeValueWithoutNameSpace()
 {
     config.Configuration = "xmldelete";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmldelete.xml"));
     Assert.IsNull(doc.SelectSingleNode("/configuration/nhibernate/add[@key='hibernate.dialect']"));
 }
 public void DeleteNodeWithNameSpace()
 {
     config.Configuration = "xmldeletens";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmldelete.ns.xml"));
     Assert.IsNull(doc.SelectSingleNode("/r:configuration/r:configSections/r:section", GetManager(doc)));
 }
 public void CanUseXpathWithForwardSlashData()
 {
     config.Configuration = "xpathtest";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xpathtest.ns.xml"));
     Assert.IsNull(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@key='test/value']", GetManager(doc)));
 }
        public void ExceptionOnUpdateMissingSection()
        {
            RenderConfigConfig config = GetConfigObject();
            config.BreakOnNoMatch = true;
            config.Configuration = "inimissingsection";
            IRenderConfigLogger log = new ConsoleLogger();
            RenderConfigEngine engine = new RenderConfigEngine(config, log);

            Assert.Throws<System.Exception>(delegate { engine.Render(); });
            
        }
Пример #41
0
 public void CheckINIMultipleVariableSubstitutionInterspersed()
 {
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     IConfigSource ini = new IniConfigSource(Path.Combine(od.FullName, "test.ini"));
     Assert.AreEqual(ini.Configs["Logging"].Get("Expansion2"), string.Concat(Environment.GetEnvironmentVariable("RenderTestVar1"), "blah", Environment.GetEnvironmentVariable("RenderTestVar2")));
 }
        public void ReplaceRepeatingSubString()
        {
            RenderConfigConfig config = GetConfigObject();
            config.BreakOnNoMatch = true;
            config.Configuration = "inireplace";
            IRenderConfigLogger log = new ConsoleLogger();
            RenderConfigEngine engine = new RenderConfigEngine(config, log);

            engine.Render();
            IConfigSource ini = new IniConfigSource(Path.Combine(od.FullName, "test.ini"));
            Assert.IsTrue(ini.Configs["Logging"].Contains("Replacement1"));
            Assert.IsTrue(ini.Configs["Logging"].Contains("Replacement2"));
            Assert.IsTrue(ini.Configs["Logging"].Contains("Replacement3"));


        }
Пример #43
0
        public void IncludedFullFilesAvailable()
        {
            string dir = String.Concat("testing", Path.DirectorySeparatorChar, "FullIncluded");
            config.ConfigFile = String.Concat("examples", Path.DirectorySeparatorChar, "config.include.full.xml");
            config.Configuration = "included";
            config.OutputDirectory = dir;
            config.BreakOnNoMatch = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(File.Exists(String.Concat(dir, Path.DirectorySeparatorChar, "included.xml")));
        }
        public void ReplaceMultipleSubString()
        {
            RenderConfigConfig config = new RenderConfigConfig();
            config.ConfigFile = String.Concat("examples",Path.DirectorySeparatorChar, "config.xml.xml");
            config.Configuration = "xmlreplace";
            config.OutputDirectory = String.Concat("testing",Path.DirectorySeparatorChar,"xmlreplace");
            config.InputDirectory = "examples";
            config.BreakOnNoMatch = false;
            IRenderConfigLogger log = new ConsoleLogger();
            RenderConfigEngine engine = new RenderConfigEngine(config, log);
            engine.Render();

            XmlDocument doc = new XmlDocument();
            doc.Load(String.Concat("testing",Path.DirectorySeparatorChar,"xmlreplace",Path.DirectorySeparatorChar,"xmlreplace.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/configuration/ReplacementRandom"));

            doc.Load(String.Concat("testing", Path.DirectorySeparatorChar, "xmlreplace", Path.DirectorySeparatorChar, "xmlreplace.ns.xml"));
            Assert.IsNotNull(doc.SelectSingleNode("/r:configuration/r:ReplacementRandom", GetManager(doc)));
        }
 public void ReplacementResultingInInvalidXmlThrowsException()
 {
     RenderConfigConfig config = new RenderConfigConfig();
     config.ConfigFile = String.Concat("examples",Path.DirectorySeparatorChar, "config.xml.xml");
     config.Configuration = "xmlreplacebad";
     config.OutputDirectory = String.Concat("testing",Path.DirectorySeparatorChar, "xmlreplace");
     config.InputDirectory = "examples";
     config.BreakOnNoMatch = false;
     IRenderConfigLogger log = new ConsoleLogger();
     RenderConfigEngine engine = new RenderConfigEngine(config, log);
     Assert.Throws<XmlException>(delegate {engine.Render();});
 }
Пример #46
0
        public void CheckINISingleVariableSubstitution()
        {
			Environment.SetEnvironmentVariable("RenderTestVar1", "EnvVarBlah");
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            IConfigSource ini = new IniConfigSource(Path.Combine(od.FullName, "test.ini"));
            Assert.AreEqual(ini.Configs["Logging"].Get("File Name"), Environment.GetEnvironmentVariable("RenderTestVar1"));
        }
Пример #47
0
        public void CanPreserveSourceStructure()
        {
            CreateTestFilesDirectory();

            config.Configuration = "preservestructure";
            config.OutputDirectory = String.Concat("testing", Path.DirectorySeparatorChar, "PreserveStructure");
            config.PreserveSourceStructure = true;
            config.BreakOnNoMatch = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(File.Exists(String.Concat("testing",Path.DirectorySeparatorChar,"preservestructure",Path.DirectorySeparatorChar,"TestFiles",Path.DirectorySeparatorChar,"test.xml")));
            Directory.Delete(String.Concat("examples",Path.DirectorySeparatorChar,"testfiles"), true);
        }
Пример #48
0
        public void MultipleDependencyCheck()
        {
            engine = new RenderConfigEngine(config, log);
            engine.Render();
            Assert.IsTrue(File.Exists(Path.Combine(od.FullName, "MultipleDependencies.xml")));
            XmlDocument doc = new XmlDocument();
            doc.Load(Path.Combine(od.FullName, "multipledependencies.xml"));
            Assert.AreEqual(doc.SelectSingleNode("/configuration/Random").InnerText, "Child1");

        }
Пример #49
0
        public void DoesntPreserveSourceStructureWhenNotAsked()
        {
            CreateTestFilesDirectory();

            string dir = String.Concat("testing", Path.DirectorySeparatorChar, "DoesntPreserveStructure");
            config.Configuration = "preservestructure";
            config.OutputDirectory = dir;
            config.BreakOnNoMatch = false;
            engine = new RenderConfigEngine(config, log);
            engine.Render();

            Assert.True(!File.Exists(String.Concat(dir,Path.DirectorySeparatorChar,"TestFiles",Path.DirectorySeparatorChar,"test.xml")));
            Assert.True(File.Exists(String.Concat(dir,Path.DirectorySeparatorChar,"test.xml")));
        }
 public void DeleteAttributeWithNameSpace()
 {
     config.Configuration = "xmldeletens";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmldelete.ns.xml"));
     Assert.IsNotNull(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@key='hibernate.connection.driver_class']", GetManager(doc)));
     Assert.IsNull(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@key='hibernate.connection.driver_class']", GetManager(doc)).Attributes["Value"]);
 }
 public void AddAttributeViaAttributeXpathWithNameSpace()
 {
     config.Configuration = "xmladdns";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmladd.ns.xml"));
     Assert.IsNotNull(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@random='xmladd']", GetManager(doc)));
 }
        public void SettingVariables()
        {
            RenderConfigConfig config = new RenderConfigConfig();
            config.ConfigFile = String.Concat("examples",Path.DirectorySeparatorChar, "config.xml.xml");
            config.Configuration = "variabletest1";
            config.OutputDirectory = String.Concat("testing",Path.DirectorySeparatorChar, "variabletest1");
            config.InputDirectory = "examples";
            config.BreakOnNoMatch = false;
            IRenderConfigLogger log = new ConsoleLogger();
            RenderConfigEngine engine = new RenderConfigEngine(config, log);
            engine.Render();

            XmlDocument doc = new XmlDocument();
            doc.Load(String.Concat("testing", Path.DirectorySeparatorChar, "variabletest1", Path.DirectorySeparatorChar, "test.xml"));
            Assert.AreEqual(doc.SelectSingleNode("/configuration/Random").InnerText,"variabletest1");
        }
 public void UpdateAttributeWithNameSpace()
 {
     config.Configuration = "xmlupdatens";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName,"xmlupdate.ns.xml"));
     Assert.AreEqual(doc.SelectSingleNode("/r:configuration/r:nhibernate/r:add[@key='hibernate.dialect']",GetManager(doc)).Attributes["value"].Value, "xmlupdate");
 }
Пример #54
0
 public void BadConfigDoesntLoad()
 {
     config.ConfigFile = String.Concat("examples",Path.DirectorySeparatorChar,"config.bad.xml");
     config.Configuration = "preservestructure";
     config.OutputDirectory = "blah";
     config.BreakOnNoMatch = false;
     engine = new RenderConfigEngine(config, log);
     Assert.Throws<ApplicationException>(delegate { engine.Render(); });
 }
Пример #55
0
        /// <summary>
        /// Main application entry point.
        /// </summary>
        /// <param name="args">The args.</param>
        static void Main(string[] args)
        {
            Boolean showHelp    = false;
            Boolean showVersion = false;
            //Boolean verbose = false;
            RenderConfigConfig config = new RenderConfigConfig();

            config.DeleteOutputDirectory         = false;
            config.CleanOutput                   = false;
            config.BreakOnNoMatch                = false;
            config.PreserveSourceStructure       = false;
            config.SubDirectoryEachConfiguration = false;

            OptionSet options = null;

            try
            {
                options = new OptionSet()
                          //.Add("v|verbose", "Not yet implemented", delegate(string v) { if (v != null) verbose = true; })
                          .Add("?|h|help", "Show this message and exit", delegate(string v) { if (v != null)
                                                                                              {
                                                                                                  showHelp = true;
                                                                                              }
                               })
                          .Add("f=|file=", "File containing configuration", delegate(string v) { if (v != null)
                                                                                                 {
                                                                                                     config.ConfigFile = v;
                                                                                                 }
                                                                                                 else
                                                                                                 {
                                                                                                     throw new OptionException("Missing Configuration File", "f|file");
                                                                                                 } })
                          .Add("c=|configuration=", "Target configuration", delegate(string v) { if (v != null)
                                                                                                 {
                                                                                                     config.Configuration = v;
                                                                                                 }
                                                                                                 else
                                                                                                 {
                                                                                                     throw new OptionException("Missing Configuration", "c|configuration");
                                                                                                 } })
                          .Add("o=|output=", "Target output directory", delegate(string v) { if (v != null)
                                                                                             {
                                                                                                 config.OutputDirectory = v;
                                                                                             }
                                                                                             else
                                                                                             {
                                                                                                 throw new OptionException("Missing Output Directory", "o|output");
                                                                                             } })
                          .Add("i=|input=", "The input directory to use as the base for all relative source file paths", delegate(string v) { if (v != null)
                                                                                                                                              {
                                                                                                                                                  config.InputDirectory = v;
                                                                                                                                              }
                               })
                          .Add("d|deleteoutput", "Delete target output directory", delegate(string v) { if (v != null)
                                                                                                        {
                                                                                                            config.DeleteOutputDirectory = true;
                                                                                                        }
                               })
                          .Add("l|clean", "Clean XML output files", delegate(string v) { if (v != null)
                                                                                         {
                                                                                             config.CleanOutput = true;
                                                                                         }
                               })
                          .Add("b|break", "Break on no match", delegate(string v) { if (v != null)
                                                                                    {
                                                                                        config.BreakOnNoMatch = true;
                                                                                    }
                               })
                          .Add("p|preserve", "Preserve source directory structure when outputting", delegate(string v) { if (v != null)
                                                                                                                         {
                                                                                                                             config.PreserveSourceStructure = true;
                                                                                                                         }
                               })
                          .Add("v|version", "Output the version", delegate(string v) { if (v != null)
                                                                                       {
                                                                                           showVersion = true;
                                                                                       }
                               })
                          .Add("s|subdirperconfig", "Output each configuration to a sub-directory under the output directory.", delegate(string v) { if (v != null)
                                                                                                                                                     {
                                                                                                                                                         config.SubDirectoryEachConfiguration = true;
                                                                                                                                                     }
                               });

                options.Parse(args);
            }
            catch (OptionException e)
            {
                System.Console.WriteLine();
                System.Console.WriteLine(e.Message);
                System.Console.WriteLine();
                options.WriteOptionDescriptions(System.Console.Out);
                System.Console.ResetColor();
                System.Environment.Exit(1);
            }

            if (showVersion)
            {
                ReportExeAndVersion();
                System.Console.ResetColor();
                System.Environment.Exit(1);
            }

            if (showHelp || args.Length == 0)
            {
                ReportExeAndVersion();
                System.Console.WriteLine("Renders stuff");
                options.WriteOptionDescriptions(System.Console.Out);
                System.Console.ResetColor();
                System.Environment.Exit(1);
            }

            //HACK This is not right, shouldnt NDesk.Options be hanlding this shit????
            if (config.OutputDirectory == null && !config.SubDirectoryEachConfiguration)
            {
                OutputArgumentError(options, "Please provide either an output directory or specify -s for a subdirectory per configuration");
            }

            if (config.Configuration == null)
            {
                OutputArgumentError(options, "Please provide a target configuration");
            }

            if (config.ConfigFile == null)
            {
                OutputArgumentError(options, "Please provide a config file to parse");
            }
            try
            {
                IRenderConfigLogger log = new ConsoleLogger();
                RenderConfigEngine.RunAllConfigurations(config, log);
            }
            catch (Exception i)
            {
                System.Console.WriteLine();
                System.Console.WriteLine("Encountered error: " + i.Message);
                System.Console.WriteLine();
            }

            System.Console.ResetColor();
        }
 public void UpdateNodeWithNameSpace()
 {
     config.Configuration = "xmlupdatens";
     engine = new RenderConfigEngine(config, log);
     engine.Render();
     XmlDocument doc = new XmlDocument();
     doc.Load(Path.Combine(od.FullName, "xmlupdate.ns.xml"));
     Assert.AreEqual(doc.SelectSingleNode("/r:configuration/r:Random", GetManager(doc)).InnerText, "xmlupdate");
 }