コード例 #1
0
        /// <summary> Runs the test :
        /// *
        /// uses the Velocity class to eval a string
        /// which accesses a method that throws an
        /// exception.
        /// </summary>
        public virtual void runTest()
        {
            System.String template = "$woogie.doException() boing!";

            VelocityContext vc = new VelocityContext()
            ;

            vc.put("woogie", this);

            System.IO.StringWriter w = new System.IO.StringWriter();

            try {
            Velocity.evaluate(vc, w, "test", template)
            ;
            fail("No exception thrown");
            } catch (MethodInvocationException mie) {
            System.Console.Out.WriteLine("Caught MIE (good!) :");
            System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
            System.Console.Out.WriteLine("  method    = " + mie.MethodName);

            //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
            System.Exception t = mie.WrappedThrowable;
            System.Console.Out.WriteLine("  throwable = " + t);

            if (t is System.Exception) {
            System.Console.Out.WriteLine("  exception = " + ((System.Exception) t).Message);
            }
            } catch (System.Exception e) {
            fail("Wrong exception thrown, first test." + e);
            SupportClass.WriteStackTrace(e, Console.Error);
            }

            /*
            *  second test - to ensure that methods accessed via get+ construction
            *  also work
            */

            template = "$woogie.foo boing!";

            try
            {
            Velocity.evaluate(vc, w, "test", template)
            ;
            fail("No exception thrown, second test.");
            }
            catch (MethodInvocationException mie) {
            System.Console.Out.WriteLine("Caught MIE (good!) :");
            System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
            System.Console.Out.WriteLine("  method    = " + mie.MethodName);

            //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
            System.Exception t = mie.WrappedThrowable;
            System.Console.Out.WriteLine("  throwable = " + t);

            if (t is System.Exception) {
            System.Console.Out.WriteLine("  exception = " + ((System.Exception) t).Message);
            }
            } catch (System.Exception e) {
            fail("Wrong exception thrown, second test");
            }

            template = "$woogie.Foo boing!";

            try
            {
            Velocity.evaluate(vc, w, "test", template)
            ;
            fail("No exception thrown, third test.");
            }
            catch (MethodInvocationException mie) {
            System.Console.Out.WriteLine("Caught MIE (good!) :");
            System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
            System.Console.Out.WriteLine("  method    = " + mie.MethodName);

            //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
            System.Exception t = mie.WrappedThrowable;
            System.Console.Out.WriteLine("  throwable = " + t);

            if (t is System.Exception) {
            System.Console.Out.WriteLine("  exception = " + ((System.Exception) t).Message);
            }
            } catch (System.Exception e) {
            fail("Wrong exception thrown, third test");
            }

            template = "#set($woogie.foo = 'lala') boing!";

            try
            {
            Velocity.evaluate(vc, w, "test", template)
            ;
            fail("No exception thrown, set test.");
            }
            catch (MethodInvocationException mie) {
            System.Console.Out.WriteLine("Caught MIE (good!) :");
            System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
            System.Console.Out.WriteLine("  method    = " + mie.MethodName);

            //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
            System.Exception t = mie.WrappedThrowable;
            System.Console.Out.WriteLine("  throwable = " + t);

            if (t is System.Exception) {
            System.Console.Out.WriteLine("  exception = " + ((System.Exception) t).Message);
            }
            } catch (System.Exception e) {
            fail("Wrong exception thrown, set test");
            }
        }
コード例 #2
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);
            }
        }
コード例 #3
0
        /// <summary> Runs the test.
        /// </summary>
        public virtual void runTest()
        {
            sawCacheDump = false;

            try {
            VelocityContext vc = new VelocityContext();
            System.Object foo = null;

            /*
            *  first, we need a classloader to make our foo object
            */

            TestClassloader cl = new TestClassloader();
            //UPGRADE_ISSUE: Method 'java.lang.ClassLoader.loadClass' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javalangClassLoader"'
            System.Type fooclass = cl.loadClass("Foo");
            System.Type temp_Class;
            temp_Class = fooclass;
            foo = temp_Class;

            /*
            *  put it into the context
            */
            vc.put("foo", foo);

            /*
            *  and render something that would use it
            *  that will get it into the introspector cache
            */
            System.IO.StringWriter writer = new System.IO.StringWriter();
            ve.evaluate(vc, writer, "test", "$foo.doIt()");

            /*
            *  Check to make sure ok.  note the obvious
            *  dependency on the Foo class...
            */

            if (!writer.ToString().Equals(OUTPUT)) {
            fail("Output from doIt() incorrect");
            }

            /*
            * and do it again :)
            */
            cl = new TestClassloader();
            //UPGRADE_ISSUE: Method 'java.lang.ClassLoader.loadClass' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javalangClassLoader"'
            fooclass = cl.loadClass("Foo");
            System.Type temp_Class2;
            temp_Class2 = fooclass;
            foo = temp_Class2;

            vc.put("foo", foo);

            writer = new System.IO.StringWriter();
            ve.evaluate(vc, writer, "test", "$foo.doIt()");

            if (!writer.ToString().Equals(OUTPUT)) {
            fail("Output from doIt() incorrect");
            }
            } catch (System.Exception ee) {
            System.Console.Out.WriteLine("ClassloaderChangeTest : " + ee);
            }

            if (!sawCacheDump) {
            fail("Didn't see introspector cache dump.");
            }
        }
コード例 #4
0
ファイル: ClassloaderChangeTest.cs プロジェクト: minskowl/MY
        /// <summary> Runs the test.
        /// </summary>
        public virtual void  runTest()
        {
            sawCacheDump = false;

            try {
                VelocityContext vc  = new VelocityContext();
                System.Object   foo = null;

                /*
                 *  first, we need a classloader to make our foo object
                 */

                TestClassloader cl = new TestClassloader();
                //UPGRADE_ISSUE: Method 'java.lang.ClassLoader.loadClass' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javalangClassLoader"'
                System.Type fooclass = cl.loadClass("Foo");
                System.Type temp_Class;
                temp_Class = fooclass;
                foo        = temp_Class;

                /*
                 *  put it into the context
                 */
                vc.put("foo", foo);

                /*
                 *  and render something that would use it
                 *  that will get it into the introspector cache
                 */
                System.IO.StringWriter writer = new System.IO.StringWriter();
                ve.evaluate(vc, writer, "test", "$foo.doIt()");

                /*
                 *  Check to make sure ok.  note the obvious
                 *  dependency on the Foo class...
                 */

                if (!writer.ToString().Equals(OUTPUT))
                {
                    fail("Output from doIt() incorrect");
                }

                /*
                 * and do it again :)
                 */
                cl = new TestClassloader();
                //UPGRADE_ISSUE: Method 'java.lang.ClassLoader.loadClass' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javalangClassLoader"'
                fooclass = cl.loadClass("Foo");
                System.Type temp_Class2;
                temp_Class2 = fooclass;
                foo         = temp_Class2;

                vc.put("foo", foo);

                writer = new System.IO.StringWriter();
                ve.evaluate(vc, writer, "test", "$foo.doIt()");

                if (!writer.ToString().Equals(OUTPUT))
                {
                    fail("Output from doIt() incorrect");
                }
            } catch (System.Exception ee) {
                System.Console.Out.WriteLine("ClassloaderChangeTest : " + ee);
            }

            if (!sawCacheDump)
            {
                fail("Didn't see introspector cache dump.");
            }
        }
コード例 #5
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);
            }
        }
コード例 #6
0
ファイル: Test.cs プロジェクト: DF-thangld/web_game
        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);

            }
        }
コード例 #7
0
        /// <summary> Runs the test :
        /// *
        /// uses the Velocity class to eval a string
        /// which accesses a method that throws an
        /// exception.
        /// </summary>
        public virtual void  runTest()
        {
            System.String template = "$woogie.doException() boing!";

            VelocityContext vc = new VelocityContext()
            ;

            vc.put("woogie", this);

            System.IO.StringWriter w = new System.IO.StringWriter();

            try {
                Velocity.evaluate(vc, w, "test", template)
                ;
                fail("No exception thrown");
            } catch (MethodInvocationException mie) {
                System.Console.Out.WriteLine("Caught MIE (good!) :");
                System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
                System.Console.Out.WriteLine("  method    = " + mie.MethodName);

                //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
                System.Exception t = mie.WrappedThrowable;
                System.Console.Out.WriteLine("  throwable = " + t);

                if (t is System.Exception)
                {
                    System.Console.Out.WriteLine("  exception = " + ((System.Exception)t).Message);
                }
            } catch (System.Exception e) {
                fail("Wrong exception thrown, first test." + e);
                SupportClass.WriteStackTrace(e, Console.Error);
            }

            /*
             *  second test - to ensure that methods accessed via get+ construction
             *  also work
             */

            template = "$woogie.foo boing!";

            try
            {
                Velocity.evaluate(vc, w, "test", template)
                ;
                fail("No exception thrown, second test.");
            }
            catch (MethodInvocationException mie) {
                System.Console.Out.WriteLine("Caught MIE (good!) :");
                System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
                System.Console.Out.WriteLine("  method    = " + mie.MethodName);

                //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
                System.Exception t = mie.WrappedThrowable;
                System.Console.Out.WriteLine("  throwable = " + t);

                if (t is System.Exception)
                {
                    System.Console.Out.WriteLine("  exception = " + ((System.Exception)t).Message);
                }
            } catch (System.Exception e) {
                fail("Wrong exception thrown, second test");
            }

            template = "$woogie.Foo boing!";

            try
            {
                Velocity.evaluate(vc, w, "test", template)
                ;
                fail("No exception thrown, third test.");
            }
            catch (MethodInvocationException mie) {
                System.Console.Out.WriteLine("Caught MIE (good!) :");
                System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
                System.Console.Out.WriteLine("  method    = " + mie.MethodName);

                //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
                System.Exception t = mie.WrappedThrowable;
                System.Console.Out.WriteLine("  throwable = " + t);

                if (t is System.Exception)
                {
                    System.Console.Out.WriteLine("  exception = " + ((System.Exception)t).Message);
                }
            } catch (System.Exception e) {
                fail("Wrong exception thrown, third test");
            }

            template = "#set($woogie.foo = 'lala') boing!";

            try
            {
                Velocity.evaluate(vc, w, "test", template)
                ;
                fail("No exception thrown, set test.");
            }
            catch (MethodInvocationException mie) {
                System.Console.Out.WriteLine("Caught MIE (good!) :");
                System.Console.Out.WriteLine("  reference = " + mie.ReferenceName);
                System.Console.Out.WriteLine("  method    = " + mie.MethodName);

                //UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
                System.Exception t = mie.WrappedThrowable;
                System.Console.Out.WriteLine("  throwable = " + t);

                if (t is System.Exception)
                {
                    System.Console.Out.WriteLine("  exception = " + ((System.Exception)t).Message);
                }
            } catch (System.Exception e) {
                fail("Wrong exception thrown, set test");
            }
        }
コード例 #8
0
        /// <summary> Runs the test.
        /// </summary>
        public virtual void  runTest()
        {
            /*
             *  make a Vector and String array because
             *  they are treated differently in Foreach()
             */
            System.Collections.ArrayList v = new System.Collections.ArrayList();

            v.Add(new System.String("vector hello 1".ToCharArray()));
            v.Add(new System.String("vector hello 2".ToCharArray()));
            v.Add(new System.String("vector hello 3".ToCharArray()));

            System.String[] strArray = new System.String[3];

            strArray[0] = "array hello 1";
            strArray[1] = "array hello 2";
            strArray[2] = "array hello 3";

            VelocityContext context = new VelocityContext();

            try {
                assureResultsDirectoryExists(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR);

                /*
                 *  get the template and the output
                 */

                Template template = RuntimeSingleton.getTemplate(getFileName(null, "context_safety", org.apache.velocity.test.TemplateTestBase_Fields.TMPL_FILE_EXT))
                ;

                System.IO.FileStream fos1 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "context_safety1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

                System.IO.FileStream fos2 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "context_safety2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer1 = new BufferedWriter(new System.IO.StreamWriter(fos1));
                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer2 = new BufferedWriter(new System.IO.StreamWriter(fos2));

                /*
                 *  put the Vector into the context, and merge
                 */

                context.put("vector", v);
                template.merge(context, writer1);
                writer1.Flush();
                writer1.Close();

                /*
                 *  now put the string array into the context, and merge
                 */

                context.put("vector", strArray);
                template.merge(context, writer2);
                writer2.Flush();
                writer2.Close();

                if (!isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "context_safety1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT) || !isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "context_safety2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT))
                {
                    fail("Output incorrect.");
                }
            } catch (System.Exception e) {
                fail(e.Message);
            }
        }
コード例 #9
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);
            }
        }
コード例 #10
-1
        /// <summary> Runs the test.
        /// </summary>
        public virtual void runTest()
        {
            /*
            *  make a Vector and String array because
            *  they are treated differently in Foreach()
            */
            System.Collections.ArrayList v = new System.Collections.ArrayList();

            v.Add(new System.String("vector hello 1".ToCharArray()));
            v.Add(new System.String("vector hello 2".ToCharArray()));
            v.Add(new System.String("vector hello 3".ToCharArray()));

            System.String[] strArray = new System.String[3];

            strArray[0] = "array hello 1";
            strArray[1] = "array hello 2";
            strArray[2] = "array hello 3";

            VelocityContext context = new VelocityContext();

            try {
            assureResultsDirectoryExists(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR);

            /*
            *  get the template and the output
            */

            Template template = RuntimeSingleton.getTemplate(getFileName(null, "context_safety", org.apache.velocity.test.TemplateTestBase_Fields.TMPL_FILE_EXT))
            ;

            System.IO.FileStream fos1 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "context_safety1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

            System.IO.FileStream fos2 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "context_safety2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

            //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
            System.IO.StreamWriter writer1 = new BufferedWriter(new System.IO.StreamWriter(fos1));
            //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
            System.IO.StreamWriter writer2 = new BufferedWriter(new System.IO.StreamWriter(fos2));

            /*
            *  put the Vector into the context, and merge
            */

            context.put("vector", v);
            template.merge(context, writer1);
            writer1.Flush();
            writer1.Close();

            /*
            *  now put the string array into the context, and merge
            */

            context.put("vector", strArray);
            template.merge(context, writer2);
            writer2.Flush();
            writer2.Close();

            if (!isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "context_safety1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT) || !isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "context_safety2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT)) {
            fail("Output incorrect.");
            }
            } catch (System.Exception e) {
            fail(e.Message);
            }
        }