/// <summary> Runs the test. /// </summary> public virtual void runTest() { /* * lets make a Context and add the event cartridge */ VelocityContext inner = new VelocityContext(); /* * Now make an event cartridge, register all the * event handlers (at once) and attach it to the * Context */ EventCartridge ec = new EventCartridge(); ec.addEventHandler(this); ec.attachToContext(inner); /* * now wrap the event cartridge - we want to make sure that * we can do this w/o harm */ VelocityContext context = new VelocityContext(inner); context.put("name", "Velocity"); try { /* * First, the reference insertion handler */ System.String s = "$name"; System.IO.StringWriter w = new System.IO.StringWriter(); Velocity.evaluate(context, w, "mystring", s); if (!w.ToString().Equals(REFERENCE_VALUE)) { fail("Reference insertion test 1"); } /* * using the same handler, we can deal with * null references as well */ s = "$floobie"; w = new System.IO.StringWriter(); Velocity.evaluate(context, w, "mystring", s); if (!w.ToString().Equals(NO_REFERENCE_VALUE)) { fail("Reference insertion test 2"); } /* * now lets test setting a null value - this test * should result in *no* log output. */ s = "#set($settest = $NotAReference)"; w = new System.IO.StringWriter(); logString = null; Velocity.evaluate(context, w, "mystring", s); if (logString != null) { fail("NullSetEventHandler test 1"); } /* * now lets test setting a null value - this test * should result in log output. */ s = "#set($logthis = $NotAReference)"; w = new System.IO.StringWriter(); logString = null; Velocity.evaluate(context, w, "mystring", s); if (logString == null) { fail("NullSetEventHandler test 1"); } /* * finally, we test a method exception event - we do this * by putting this class in the context, and calling * a method that does nothing but throw an exception. * we use a little switch to turn the event handling * on and off * * Note also how the reference insertion process * happens as well */ exceptionSwitch = true; context.put("this", this); s = " $this.throwException()"; w = new System.IO.StringWriter(); try { Velocity.evaluate(context, w, "mystring", s); } catch (MethodInvocationException mee) { fail("MethodExceptionEvent test 1"); } catch (System.Exception e) { fail("MethodExceptionEvent test 1"); } /* * now, we turn the switch off, and we can see that the * exception will propgate all the way up here, and * wil be caught by the catch() block below */ exceptionSwitch = false; s = " $this.throwException()"; w = new System.IO.StringWriter(); try { Velocity.evaluate(context, w, "mystring", s); fail("MethodExceptionEvent test 2"); } catch (MethodInvocationException mee) { /* * correct - should land here... */ } catch (System.Exception e) { fail("MethodExceptionEvent test 2"); } } catch (ParseErrorException pee) { fail("ParseErrorException" + pee); } catch (MethodInvocationException mee) { fail("MethodInvocationException" + mee); } catch (System.Exception e) { fail("Exception" + e); } }
public Test(System.String templateFile, System.String encoding) { System.IO.StreamWriter writer = null; TestProvider provider = new TestProvider(); ArrayList al = provider.Customers; System.Collections.Hashtable h = new System.Collections.Hashtable(); /* * put this in to test introspection $h.Bar or $h.get("Bar") etc */ SupportClass.PutElement(h, "Bar", "this is from a hashtable!"); SupportClass.PutElement(h, "Foo", "this is from a hashtable too!"); /* * adding simple vector with strings for testing late introspection stuff */ System.Collections.ArrayList v = new System.Collections.ArrayList(); System.String str = "mystr"; v.Add(new System.String("hello".ToCharArray())); v.Add(new System.String("hello2".ToCharArray())); v.Add(str); try { /* * this is another way to do properties when initializing Runtime. * make a Properties */ //UPGRADE_TODO: Format of property file may need to be changed. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1089"' System.Configuration.AppSettingsReader p = new System.Configuration.AppSettingsReader(); /* * now, if you want to, load it from a file (or whatever) */ try { System.IO.FileStream fis = new System.IO.FileStream(new System.IO.FileInfo("velocity.properties").FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read); if (fis != null) { //UPGRADE_ISSUE: Method 'java.util.Properties.load' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javautilPropertiesload_javaioInputStream"' p.load(fis); } } catch (System.Exception ex) { /* no worries. no file... */ } /* * iterate out the properties */ System.Collections.Specialized.NameValueCollection temp_namedvaluecollection; temp_namedvaluecollection = System.Configuration.ConfigurationSettings.AppSettings; //UPGRADE_TODO: method 'java.util.Enumeration.hasMoreElements' was converted to ' ' which has a different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1073_javautilEnumerationhasMoreElements"' for (System.Collections.IEnumerator e = temp_namedvaluecollection.GetEnumerator(); e.MoveNext(); ) { //UPGRADE_TODO: method 'java.util.Enumeration.nextElement' was converted to ' ' which has a different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1073_javautilEnumerationnextElement"' System.String el = (System.String) e.Current; //UPGRADE_WARNING: method 'java.util.Properties.getProperty' was converted to ' ' which may throw an exception. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1101"' Velocity.setProperty(el, (System.String) p.GetValue(el, System.Type.GetType("System.String"))); } /* * add some individual properties if you wish */ Velocity.setProperty(Velocity.RUNTIME_LOG_ERROR_STACKTRACE, "true"); Velocity.setProperty(Velocity.RUNTIME_LOG_WARN_STACKTRACE, "true"); Velocity.setProperty(Velocity.RUNTIME_LOG_INFO_STACKTRACE, "true"); /* * use an alternative logger. Set it up here and pass it in. */ // SimpleLogSystem sls = new SimpleLogSystem("velocity_simple.log"); // Velocity.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM, sls ); /* * and now call init */ Velocity.init(); /* * now, do what we want to do. First, get the Template */ if (templateFile == null) { templateFile = "examples/example.vm"; } Template template = null; try { template = RuntimeSingleton.getTemplate(templateFile, encoding) ; } catch (ResourceNotFoundException rnfe) { System.Console.Out.WriteLine("Test : RNFE : Cannot find template " + templateFile); } catch (ParseErrorException pee) { System.Console.Out.WriteLine("Test : Syntax error in template " + templateFile + ":" + pee); } /* * now, make a Context object and populate it. */ VelocityContext context = new VelocityContext(); context.put("provider", provider); context.put("name", "jason"); context.put("providers", provider.Customers2); context.put("list", al); context.put("hashtable", h); context.put("search", provider.Search); context.put("relatedSearches", provider.RelSearches); context.put("searchResults", provider.RelSearches); context.put("menu", provider.Menu); context.put("stringarray", provider.Array); context.put("vector", v); context.put("mystring", new System.String("".ToCharArray())); context.put("hashmap", new HashMap()); context.put("runtime", new FieldMethodizer("org.apache.velocity.runtime.RuntimeSingleton")); context.put("fmprov", new FieldMethodizer(provider)); context.put("Floog", "floogie woogie"); context.put("geirstring", str); context.put("mylong", 5); /* * we want to make sure we test all types of iterative objects * in #foreach() */ int[] intarr = new int[]{10, 20, 30, 40, 50}; System.Object[] oarr = new System.Object[]{"a", "b", "c", "d"}; context.put("collection", v); context.put("iterator", v.iterator()); context.put("map", h); context.put("obarr", oarr); context.put("intarr", intarr); System.String stest = " My name is $name -> $Floog"; System.IO.StringWriter w = new System.IO.StringWriter(); // Velocity.evaluate( context, w, "evaltest",stest ); // System.out.println("Eval = " + w ); w = new System.IO.StringWriter(); //Velocity.mergeTemplate( "mergethis.vm", context, w ); //System.out.println("Merge = " + w ); w = new System.IO.StringWriter(); //Velocity.invokeVelocimacro( "floog", "test", new String[2], context, w ); //System.out.println("Invoke = " + w ); /* * event cartridge stuff */ EventCartridge ec = new EventCartridge(); ec.addEventHandler(this); ec.attachToContext(context); /* * make a writer, and merge the template 'against' the context */ VelocityContext vc = new VelocityContext(context); if (template != null) { //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"' writer = new BufferedWriter(new System.IO.StreamWriter(System.Console.Out)); template.merge(vc, writer); writer.Flush(); writer.Close(); } } catch (MethodInvocationException mie) { System.Console.Out.WriteLine("MIE : " + mie); } catch (System.Exception e) { RuntimeSingleton.error("Test- exception : " + e); SupportClass.WriteStackTrace(e, Console.Error); } }
public Test(System.String templateFile, System.String encoding) { System.IO.StreamWriter writer = null; TestProvider provider = new TestProvider(); ArrayList al = provider.Customers; System.Collections.Hashtable h = new System.Collections.Hashtable(); /* * put this in to test introspection $h.Bar or $h.get("Bar") etc */ SupportClass.PutElement(h, "Bar", "this is from a hashtable!"); SupportClass.PutElement(h, "Foo", "this is from a hashtable too!"); /* * adding simple vector with strings for testing late introspection stuff */ System.Collections.ArrayList v = new System.Collections.ArrayList(); System.String str = "mystr"; v.Add(new System.String("hello".ToCharArray())); v.Add(new System.String("hello2".ToCharArray())); v.Add(str); try { /* * this is another way to do properties when initializing Runtime. * make a Properties */ //UPGRADE_TODO: Format of property file may need to be changed. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1089"' System.Configuration.AppSettingsReader p = new System.Configuration.AppSettingsReader(); /* * now, if you want to, load it from a file (or whatever) */ try { System.IO.FileStream fis = new System.IO.FileStream(new System.IO.FileInfo("velocity.properties").FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read); if (fis != null) { //UPGRADE_ISSUE: Method 'java.util.Properties.load' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javautilPropertiesload_javaioInputStream"' p.load(fis); } } catch (System.Exception ex) { /* no worries. no file... */ } /* * iterate out the properties */ System.Collections.Specialized.NameValueCollection temp_namedvaluecollection; temp_namedvaluecollection = System.Configuration.ConfigurationSettings.AppSettings; //UPGRADE_TODO: method 'java.util.Enumeration.hasMoreElements' was converted to ' ' which has a different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1073_javautilEnumerationhasMoreElements"' for (System.Collections.IEnumerator e = temp_namedvaluecollection.GetEnumerator(); e.MoveNext();) { //UPGRADE_TODO: method 'java.util.Enumeration.nextElement' was converted to ' ' which has a different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1073_javautilEnumerationnextElement"' System.String el = (System.String)e.Current; //UPGRADE_WARNING: method 'java.util.Properties.getProperty' was converted to ' ' which may throw an exception. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1101"' Velocity.setProperty(el, (System.String)p.GetValue(el, System.Type.GetType("System.String"))); } /* * add some individual properties if you wish */ Velocity.setProperty(Velocity.RUNTIME_LOG_ERROR_STACKTRACE, "true"); Velocity.setProperty(Velocity.RUNTIME_LOG_WARN_STACKTRACE, "true"); Velocity.setProperty(Velocity.RUNTIME_LOG_INFO_STACKTRACE, "true"); /* * use an alternative logger. Set it up here and pass it in. */ // SimpleLogSystem sls = new SimpleLogSystem("velocity_simple.log"); // Velocity.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM, sls ); /* * and now call init */ Velocity.init(); /* * now, do what we want to do. First, get the Template */ if (templateFile == null) { templateFile = "examples/example.vm"; } Template template = null; try { template = RuntimeSingleton.getTemplate(templateFile, encoding) ; } catch (ResourceNotFoundException rnfe) { System.Console.Out.WriteLine("Test : RNFE : Cannot find template " + templateFile); } catch (ParseErrorException pee) { System.Console.Out.WriteLine("Test : Syntax error in template " + templateFile + ":" + pee); } /* * now, make a Context object and populate it. */ VelocityContext context = new VelocityContext(); context.put("provider", provider); context.put("name", "jason"); context.put("providers", provider.Customers2); context.put("list", al); context.put("hashtable", h); context.put("search", provider.Search); context.put("relatedSearches", provider.RelSearches); context.put("searchResults", provider.RelSearches); context.put("menu", provider.Menu); context.put("stringarray", provider.Array); context.put("vector", v); context.put("mystring", new System.String("".ToCharArray())); context.put("hashmap", new HashMap()); context.put("runtime", new FieldMethodizer("org.apache.velocity.runtime.RuntimeSingleton")); context.put("fmprov", new FieldMethodizer(provider)); context.put("Floog", "floogie woogie"); context.put("geirstring", str); context.put("mylong", 5); /* * we want to make sure we test all types of iterative objects * in #foreach() */ int[] intarr = new int[] { 10, 20, 30, 40, 50 }; System.Object[] oarr = new System.Object[] { "a", "b", "c", "d" }; context.put("collection", v); context.put("iterator", v.iterator()); context.put("map", h); context.put("obarr", oarr); context.put("intarr", intarr); System.String stest = " My name is $name -> $Floog"; System.IO.StringWriter w = new System.IO.StringWriter(); // Velocity.evaluate( context, w, "evaltest",stest ); // System.out.println("Eval = " + w ); w = new System.IO.StringWriter(); //Velocity.mergeTemplate( "mergethis.vm", context, w ); //System.out.println("Merge = " + w ); w = new System.IO.StringWriter(); //Velocity.invokeVelocimacro( "floog", "test", new String[2], context, w ); //System.out.println("Invoke = " + w ); /* * event cartridge stuff */ EventCartridge ec = new EventCartridge(); ec.addEventHandler(this); ec.attachToContext(context); /* * make a writer, and merge the template 'against' the context */ VelocityContext vc = new VelocityContext(context); if (template != null) { //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"' writer = new BufferedWriter(new System.IO.StreamWriter(System.Console.Out)); template.merge(vc, writer); writer.Flush(); writer.Close(); } } catch (MethodInvocationException mie) { System.Console.Out.WriteLine("MIE : " + mie); } catch (System.Exception e) { RuntimeSingleton.error("Test- exception : " + e); SupportClass.WriteStackTrace(e, Console.Error); } }