public void Schema_with_valid_routes() { var routes = new[] { new Route("r1", "r1Alias,r1Alias2"), new Route("r2", "r2Alias") }; var _ = new AppCfgSchema("config1.json", routes); }
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; }
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"]); }
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); }
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"]); }
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); }