コード例 #1
0
        public void Schema_with_valid_routes()
        {
            var routes = new[] {
                new Route("r1", "r1Alias,r1Alias2"),
                new Route("r2", "r2Alias")
            };

            var _ = new AppCfgSchema("config1.json", routes);
        }
コード例 #2
0
ファイル: Config.cs プロジェクト: tooml/dyp.service
        public static void Load(string[] args)
        {
            var schema = new AppCfgSchema(
                "dyp.service.config.json",
                new Route("run", "start", isDefault: true)
                .Param("address", "a", ValueTypes.String, "DYPAPP_SERVICE_ADDRESS", defaultValue: "http://localhost")
                .Param("dbpath", "db", ValueTypes.String, "DYPAPP_SERVICE_DATABASEPATH", defaultValue: "..//repository")
                );

            //.Param("address", "a", ValueTypes.String, "DYPAPP_SERVICE_ADDRESS", defaultValue: "http://192.168.178.26:8080")

            var comp = new AppCfgCompiler(schema);
            var cfg  = comp.Compile(args);

            Address = new Uri(cfg.address);
            DbPath  = cfg.dbpath;
        }
コード例 #3
0
        public void Compile_uses_special_environment_varname_without_route_prefix()
        {
            var route = new Route("")
                        .Param("pOne", environmentVarName: "NOPREFIXPARAMNAME");

            var schema = new AppCfgSchema(
                "",
                new Route[0]
                );
            var sut = new AppCfgEnvironmentCompiler();

            var cfg = new Dictionary <string, object>();

            sut.Compile(route, cfg);

            Assert.AreEqual("noprefix", cfg["pOne"]);
        }
コード例 #4
0
ファイル: test_AppCfgCompiler.cs プロジェクト: ralfw/appcfg
        public void Compile_from_all_sources()
        {
            Environment.SetEnvironmentVariable("fromEnv", "42");
            Environment.SetEnvironmentVariable("cfgfileOverridesEnv", "env2");
            Environment.SetEnvironmentVariable("cmdlineOverridesEnv", "env3");

            var args = new[] { "route2",
                               "-fromCmdline:cmdline1",
                               "/cmdlineOverridesCfgfile=cmdline2",
                               "-cmdlineOverridesEnv", "cmdline3",
                               "-onCmdline",
                               "cl*1", "cl*2" };
            var schema = new AppCfgSchema("config2.json",
                                          new Route("route1", "")
                                          .Param("x")
                                          .Param("y"),
                                          new Route("route2")
                                          .Param("onCmdline")
                                          .Param("missingFromCmdline")
                                          .Param("missingWithDefault", valueType: ValueTypes.Number, defaultValue: 42)
                                          .Param("fromEnv", valueType: ValueTypes.Number)
                                          .Param("fromCfgfile", valueType: ValueTypes.DateTime)
                                          .Param("fromCmdline", valueType: ValueTypes.String)
                                          .Param("cfgfileOverridesEnv", valueType: ValueTypes.String)
                                          .Param("cmdlineOverridesCfgfile", valueType: ValueTypes.String)
                                          .Param("cmdlineOverridesEnv", valueType: ValueTypes.String)
                                          .Param("*", valueType: ValueTypes.String)
                                          );
            var sut = new AppCfgCompiler(schema);

            var cfg = sut.Compile(args);

            Assert.AreEqual("route2", cfg._RoutePath);
            Assert.AreEqual(true, cfg.onCmdline);
            Assert.AreEqual(false, cfg.missingFromCmdline);
            Assert.AreEqual(42, cfg.missingWithDefault);
            Assert.AreEqual(42, cfg.fromEnv);
            Assert.AreEqual(new DateTime(2017, 5, 12, 10, 53, 17), cfg.fromCfgfile);
            Assert.AreEqual("cmdline1", cfg.fromCmdline);
            Assert.AreEqual("cfgfile2", cfg.cfgfileOverridesEnv);
            Assert.AreEqual("cmdline2", cfg.cmdlineOverridesCfgfile);
            Assert.AreEqual("cmdline3", cfg.cmdlineOverridesEnv);
            Assert.AreEqual(new[] { "cl*1", "cl*2" }, cfg._CatchAll);
        }
コード例 #5
0
        public void Compile_skips_missing()
        {
            var route = new Route("")
                        .Param("param1", "p1 pOne")
                        .Param("missing");

            var schema = new AppCfgSchema(
                "",
                new Route[0]
                );
            var sut = new AppCfgEnvironmentCompiler();

            var cfg = new Dictionary <string, object>();

            sut.Compile(route, cfg);

            Assert.AreEqual(1, cfg.Count);
            Assert.AreEqual("1", cfg["param1"]);
        }
コード例 #6
0
        public void Compile()
        {
            var route = new Route("")
                        .Param("param1", "p1 pOne")
                        .Param("param2");

            var schema = new AppCfgSchema(
                "",
                new Route[0]
                );
            var sut = new AppCfgEnvironmentCompiler();

            dynamic cfg = new ExpandoObject();

            sut.Compile(route, cfg);

            Assert.AreEqual("1", cfg.param1);
            Assert.AreEqual("2", cfg.param2);
        }