public void TestXml() { var xml = @" <cfg environment='two'> <environments> <add name='one'> <parameters> <add name='p1' value='one-1' /> <add name='p2' value='one-2' /> </parameters> </add> <add name='two'> <parameters> <add name='p1' value='two-1' /> <add name='p2' value='two-2' /> </parameters> </add> </environments> <things> <add name='thing-1' value='@(p1)' /> <add name='thing-2' value='@(p2)' invalid='@(p3)' /> </things> <free-form-things> <add anything='something' /> <add something='@(p1)' /> </free-form-things> </cfg> ".Replace("'", "\""); var parameters = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "p1", "i am the new p1" } }; var cfg = new MyCfg(xml, parameters); foreach (var problem in cfg.Errors()) { Console.WriteLine(problem); } Assert.AreEqual(1, cfg.Errors().Length); Assert.AreEqual("Missing parameter for place-holder @(p3).", cfg.Errors()[0]); Assert.AreEqual(2, cfg.Environments.Count); Assert.AreEqual(false, cfg.Environment == cfg.Environments[0].Name); Assert.AreEqual(true, cfg.Environment == cfg.Environments[1].Name); Assert.AreEqual("i am the new p1", cfg.Things[0].Value, "I should be passed in for p1."); Assert.AreEqual("two-2", cfg.Things[1].Value, "I am the default value for p2 in the default environment two."); Assert.AreEqual("i am the new p1", cfg.FreeFormThings[1]["something"], "Even free form things should be subject to customizers"); }
public void TestJson() { var json = @" { 'environment':'two', 'environments': [ { 'name':'one', 'parameters':[ { 'name':'p1', 'value':'one-1' } { 'name':'p2', 'value':'one-2' } ] }, { 'name':'two', 'parameters':[ { 'name':'p1', 'value':'two-1' } { 'name':'p2', 'value':'two-2' } ] } ], 'things':[ { 'name':'thing-1', 'value':'@(p1)' } { 'name':'thing-2', 'value':'@(p2)' } ], 'free-form-things':[ { 'something':'@(p1)' } ] } ".Replace("'", "\""); var parameters = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "p1", "i am the new p1" } }; var cfg = new MyCfg(json, parameters); foreach (var problem in cfg.Errors()) { Console.WriteLine(problem); } Assert.AreEqual(0, cfg.Errors().Length); Assert.AreEqual(2, cfg.Environments.Count); Assert.AreEqual(false, cfg.Environment == cfg.Environments[0].Name); Assert.AreEqual(true, cfg.Environment == cfg.Environments[1].Name); Assert.AreEqual("i am the new p1", cfg.Things[0].Value, "I should be passed in for p1."); Assert.AreEqual("two-2", cfg.Things[1].Value, "I am the default value for p2 in the default environment two."); Assert.AreEqual("i am the new p1", cfg.FreeFormThings[0]["something"], "Even free form things should be subject to customizers"); }
public void TestXml() { var xml = @" <cfg environment='two'> <environments> <add name='one'> <parameters> <add name='p1' value='one-1' /> <add name='p2' value='one-2' /> </parameters> </add> <add name='two'> <parameters> <add name='p1' value='two-1' /> <add name='p2' value='two-2' /> </parameters> </add> </environments> <things> <add name='thing-1' value='@(p1)' /> <add name='thing-2' value='@(p2)' /> </things> </cfg> ".Replace("'", "\""); var parameters = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"p1", "i am the new p1"} }; var cfg = new MyCfg(xml, parameters); foreach (var problem in cfg.Errors()) { Console.WriteLine(problem); } Assert.AreEqual(0, cfg.Errors().Length); Assert.AreEqual(2, cfg.Environments.Count); Assert.AreEqual(false, cfg.Environment == cfg.Environments[0].Name); Assert.AreEqual(true, cfg.Environment == cfg.Environments[1].Name); Assert.AreEqual("i am the new p1", cfg.Things[0].Value, "I should be passed in for p1."); Assert.AreEqual("two-2", cfg.Things[1].Value, "I am the default value for p2 in the default environment two."); }
public void TestJson() { var json = @" { 'environment':'two', 'environments': [ { 'name':'one', 'parameters':[ { 'name':'p1', 'value':'one-1' } { 'name':'p2', 'value':'one-2' } ] }, { 'name':'two', 'parameters':[ { 'name':'p1', 'value':'two-1' } { 'name':'p2', 'value':'two-2' } ] } ], 'things':[ { 'name':'thing-1', 'value':'@(p1)' } { 'name':'thing-2', 'value':'@(p2)' } ] } ".Replace("'", "\""); var parameters = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"p1", "i am the new p1"} }; var cfg = new MyCfg(json, parameters); foreach (var problem in cfg.Errors()) { Console.WriteLine(problem); } Assert.AreEqual(0, cfg.Errors().Length); Assert.AreEqual(2, cfg.Environments.Count); Assert.AreEqual(false, cfg.Environment == cfg.Environments[0].Name); Assert.AreEqual(true, cfg.Environment == cfg.Environments[1].Name); Assert.AreEqual("i am the new p1", cfg.Things[0].Value, "I should be passed in for p1."); Assert.AreEqual("two-2", cfg.Things[1].Value, "I am the default value for p2 in the default environment two."); }