public void CommandLineArgs() { String[] args= { "-SingleHyphen=12", "--DoubleHyphen=yes", "--Empty", "--Whitespaces = Hello Test ", "--integer = 42", "--double = 3.14", "-Home=overwritten", "--ALIB_TEST=passed", }; Configuration cfg= new Configuration(); cfg.SetCommandLineArgs( args ); Variable var= new Variable(); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "SingleHyphen" )) ); UT_EQ( "12", var.GetString() ); cfg.Load ( var.Define( "", "DoubleHyphen" )); UT_EQ( true, var.IsTrue() ); UT_EQ( Configuration.PrioCmdLine, var.Priority); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "Empty" )) ); UT_EQ( "", var.GetString() ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "Whitespaces" )) ); UT_EQ( "Hello Test", var.GetString() ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "HOME" )) ); UT_EQ( "overwritten", var.GetString() ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "integer" )) ); UT_EQ( 42, var.GetInteger() ); UT_EQ( 0, cfg.Load ( var.Define( "", "notexistent" )) ); UT_EQ( 0, var.GetInteger() ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "integer" )) ); UT_EQ( 42, var.GetInteger() ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "double" )) ); UT_EQ( 3.14, var.GetFloat() ); UT_EQ( 0, cfg.Load ( var.Define( "", "notexistent" )) ); UT_EQ( 0.0, var.GetFloat() ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "", "double" )) ); UT_EQ( 3.14, var.GetFloat() ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "ALIB", "test" )) ); UT_EQ( "passed", var.GetString() ); }
// ############################################################################################# // protected methods // ############################################################################################# /** **************************************************************************************** * Clears all values. ******************************************************************************************/ protected void clear() { Config= null; Priority= -1; Delim= '\0'; FormatHints= 0; Category._(); Name ._(); Comments._(); Fullname._(); ClearValues(); }
public void ConfigReplacementVariables() { UT_INIT(); String[] args= { "COMMANDLINE", "--REPL_CMDLINE=ReplCommandLine", "--NOCATCMDLINE=NoCatCommandLine", }; Configuration cfg= new Configuration(); cfg.SetCommandLineArgs( args ); Variable var= new Variable(); // replacements from command line plugin var.Define( "TEST", "VARIABLE" ); cfg.ProtectedValues.Store( var, "no replacment" ); cfg.Load( var ); UT_EQ( "no replacment" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$UKN" ); cfg.Load( var ); UT_EQ( "" ,var.GetString() ); cfg.ProtectedValues.Store( var, "-$UKN * $UKN2-" ); cfg.Load( var ); UT_EQ( "- * -" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$NOCATCMDLINE" ); cfg.Load( var ); UT_EQ( "NoCatCommandLine" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$$NOCATCMDLINE$" ); cfg.Load( var ); UT_EQ( "$NoCatCommandLine$" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$REPL_CMDLINE" ); cfg.Load( var ); UT_EQ( "ReplCommandLine" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$REPL_ CMDLINE" ); cfg.Load( var ); UT_EQ( " CMDLINE" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$repL_CmdLine" ); cfg.Load( var ); UT_EQ( "ReplCommandLine" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$repL_CmdLine$repL_CmdLine" ); cfg.Load( var ); UT_EQ( "ReplCommandLineReplCommandLine" ,var.GetString() ); cfg.ProtectedValues.Store( var, "$repL_CmdLine $repL_CmdLine" ); cfg.Load( var ); UT_EQ( "ReplCommandLine ReplCommandLine" ,var.GetString() ); // replacements without category name cfg.ProtectedValues.Store( var.Define( "" , "NOCAT" ), "NoCat" ); cfg.ProtectedValues.Store( var.Define( "" , "NO_CAT" ), "No_cat" ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "$nocat" ); cfg.Load( var ); UT_EQ( "NoCat" ,var.GetString() ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "$_nocat" ); cfg.Load( var ); UT_EQ( "NoCat" ,var.GetString() ); // need to add an underscore, if no category but name contains underscore! cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "$no_cat" ); cfg.Load( var ); UT_EQ( "" ,var.GetString() ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "$_no_cat" ); cfg.Load( var ); UT_EQ( "No_cat" ,var.GetString() ); // nested variables cfg.ProtectedValues.Store( var.Define( "Rep", "Var1" ), "$Rep_Var2" ); cfg.ProtectedValues.Store( var.Define( "Rep", "Var2" ), "nested" ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "$rep_var2" ); cfg.Load( var ); UT_EQ( "nested" ,var.GetString() ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "$rep_var1" ); cfg.Load( var ); UT_EQ( "nested" ,var.GetString() ); // illegal recursion UT_PRINT( "One warning should follow" ); cfg.ProtectedValues.Store( var.Define( "Rep", "Var1" ), "$Rep_Var2" ); cfg.ProtectedValues.Store( var.Define( "Rep", "Var2" ), "$Rep_Var1" ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "$rep_var1" ); cfg.Load( var ); // custom variable definitions cfg.ProtectedValues.Store( var.Define( "Rep", "CUST" ), "cf" ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), ">>$REP_CUST<<" ); cfg.Load( var ); UT_EQ( ">>cf<<" ,var.GetString() ); cfg.SubstitutionVariableStart._()._( "${" ); cfg.SubstitutionVariableEnd ._()._( "}" ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), ">>${REP_CUST}<<" ); cfg.Load( var ); UT_EQ( ">>cf<<" ,var.GetString() ); cfg.SubstitutionVariableStart._()._( "€€€-"); cfg.SubstitutionVariableEnd ._()._( "--" ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), ">>€€€-REP_CUST--<<" ); cfg.Load( var ); UT_EQ( ">>cf<<" ,var.GetString() ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), ">>€€€-REP_CUST--" ); cfg.Load( var ); UT_EQ( ">>cf" ,var.GetString() ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "€€€-REP_CUST--" ); cfg.Load( var ); UT_EQ( "cf" ,var.GetString() ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "€€€-REP_CUST--€€€-REP_CUST--" ); cfg.Load( var ); UT_EQ( "cfcf" ,var.GetString() ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "€€-REP_CUST--" ); cfg.Load( var ); UT_EQ( "€€-REP_CUST--" ,var.GetString() ); UT_PRINT( "One warning should follow" ); cfg.ProtectedValues.Store( var.Define( "TEST", "VARIABLE"), "€€€-REP_CUST-" ); cfg.Load( var ); UT_EQ( "€€€-REP_CUST-" ,var.GetString() ); cfg.SubstitutionVariableStart._()._( "$" ); cfg.SubstitutionVariableEnd._(); // multi line replacements cfg.DefaultValues.Store( var.Define("ML", "REPL1", ';'), "repl1-v1;repl1-v2" ); cfg.DefaultValues.Store( var.Define("ML", "REPL2", ';'), "repl2-v1;repl2-v2" ); cfg.DefaultValues.Store( var.Define("ML", "VAR" , ';'), "$ML_REPL1;$ML_REPL2" ); var.Define("ML", "VAR", ';' ); cfg.Load( var ); UT_EQ( 4, var.Size() ); UT_EQ( "repl1-v1", var.GetString(0) ); UT_EQ( "repl1-v2", var.GetString(1) ); UT_EQ( "repl2-v1", var.GetString(2) ); UT_EQ( "repl2-v2", var.GetString(3) ); }
public void ConfigDefaultAndProtected() { UT_INIT(); String[] args= { "COMMANDLINE", "--TEST_VARIABLE=fromCommandLine", }; Configuration cfg= new Configuration(); cfg.SetCommandLineArgs( args ); Variable var= new Variable(); // command line UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "TEST", "VARIABLE" ) ) ); UT_EQ( "fromCommandLine" ,var.GetString() ); // set default, does not overwrite cfg.DefaultValues.Store( var.Define("TEST", "VARIABLE"), "not overwriting" ); UT_EQ( Configuration.PrioCmdLine, cfg.Load ( var.Define( "TEST", "VARIABLE" ) ) ); UT_EQ( "fromCommandLine" ,var.GetString() ); // set protected, overwrites command line cfg.ProtectedValues.Store( var.Define("TEST", "VARIABLE"), "does overwrite" ); UT_EQ( Configuration.PrioProtected, cfg.Load ( var.Define( "TEST", "VARIABLE" ) ) ); UT_EQ( "does overwrite" ,var.GetString() ); // set default, something else cfg.DefaultValues.Store( var.Define("TEST", "VAR2"), "this is var 2" ); UT_EQ( Configuration.PrioDefault, cfg.Load ( var.Define( "TEST", "VAR2" ) ) ); UT_EQ( "this is var 2" ,var.GetString() ); // set and remove an entry using plugin interface var.Define( "TEST", "Remove" ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg.DefaultValues.Load( var ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); var.AddString("To be deleted"); UT_EQ( 1, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg.DefaultValues.Store( var ); UT_EQ( 1, var.Size() ); UT_EQ( -1 ,var.Priority ); var.Define( "TEST", "Remove" ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg.DefaultValues.Load( var ); UT_EQ( 1, var.Size() ); UT_EQ( -1 ,var.Priority ); var.ClearValues(); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg.DefaultValues.Store( var ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); var.Define( "TEST", "Remove" ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg.DefaultValues.Load( var ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); // set and remove an entry using configuration interface cfg .Load ( var ); UT_EQ( 0, var.Size() ); UT_EQ( 0 ,var.Priority ); cfg .Store( var ); UT_EQ( 0, var.Size() ); UT_EQ( 0 ,var.Priority ); var.AddString("To be deleted"); UT_EQ( 1, var.Size() ); UT_EQ( 0 ,var.Priority ); cfg .Store( var ); UT_EQ( 1, var.Size() ); UT_EQ( Configuration.PrioDefault ,var.Priority ); var.Define( "TEST", "Remove" ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg .Load ( var ); UT_EQ( 1, var.Size() ); UT_EQ( Configuration.PrioDefault ,var.Priority ); var.Define( "TEST", "Remove" ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg .Store( var ); UT_EQ( 0, var.Size() ); UT_EQ( Configuration.PrioDefault ,var.Priority ); cfg .Load ( var ); UT_EQ( 0, var.Size() ); UT_EQ( 0 ,var.Priority ); var.Define( "TEST", "Remove" ); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); cfg .Load ( var ); UT_EQ( 0, var.Size() ); UT_EQ( 0 ,var.Priority ); // protected var.Define( "TEST", "Protected"); UT_EQ( 0, var.Size() ); UT_EQ( -1 ,var.Priority ); var.DefaultValue._( "Default" ); var.StoreDefault( "def par"); UT_EQ( "def par", var.GetString() ); UT_EQ( Configuration.PrioDefault ,var.Priority ); var.ClearValues(); var.AddString( "def var" ); var.StoreDefault(); UT_EQ( "def var", var.GetString() ); UT_EQ( Configuration.PrioDefault ,var.Priority ); var.ClearValues(); var.StoreDefault(); UT_EQ( "Default", var.GetString() ); UT_EQ( Configuration.PrioDefault ,var.Priority ); var.ClearValues(); var.AddString( "def var" ); var.Protect(); UT_EQ( "def var", var.GetString() ); UT_EQ( Configuration.PrioProtected ,var.Priority ); var.Protect("prot par"); UT_EQ( "prot par", var.GetString() ); UT_EQ( Configuration.PrioProtected ,var.Priority ); var.ClearValues(); var.Protect(); UT_EQ( "Default", var.GetString() ); UT_EQ( Configuration.PrioProtected ,var.Priority ); var.DefaultValue.SetNull(); var.ClearValues(); var.Protect(); UT_EQ( 0, var.Size() ); UT_EQ( Configuration.PrioProtected ,var.Priority ); var.Load(); UT_EQ( "Default", var.GetString() ); UT_EQ( Configuration.PrioDefault ,var.Priority ); }