예제 #1
0
        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");
        }
예제 #2
0
        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");
        }
예제 #3
0
        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.");

        }
예제 #4
0
        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.");

        }