示例#1
0
        /// <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);
            }
        }
示例#2
0
        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);

            }
        }
        /// <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);
            }
        }
示例#4
0
        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);
            }
        }