Package cn.bran.japid.util

Source Code of cn.bran.japid.util.ControllerUtilsTest

package cn.bran.japid.util;

import static org.junit.Assert.*;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import cn.bran.japid.template.RenderResult;
import cn.bran.play.JapidTemplateBase;

public class ControllerUtilsTest {

  @Test
  public void testRender() throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    RenderResult render;
   
    render = (RenderResult) RenderInvokerUtils.render(new Foo(null), "hi", new Integer(12));
    assertNotNull(render);

    render = (RenderResult) RenderInvokerUtils.render(new Foo(null), "hi", 12);
    assertNotNull(render);

    render = (RenderResult) RenderInvokerUtils.render(new Foo(null), "hi", null);
    assertNotNull(render);
   
    try {
      render = (RenderResult) RenderInvokerUtils.render(new Foo2(null), 12);
    } catch (Exception e) {
      System.out.println(e);
    }

    render = (RenderResult) RenderInvokerUtils.render(new Foo2(null), new ArrayList<String>());
    assertNotNull(render);

    testSingleNull();

    testEmptyArgs();
   
  }

  /**
   * @throws InvocationTargetException
   * @throws IllegalAccessException
   * @throws IllegalArgumentException
   *
   */
  @Test
  public void testSingleNull() throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    RenderResult render;
    // if cast to Object, the null is treated as an argument.
    // Otherwise the varargs is set to null.
    render = (RenderResult) RenderInvokerUtils.render(new Foo2(null), (Object)null);
    assertNotNull(render);
  }

  /**
   * @throws InvocationTargetException
   * @throws IllegalAccessException
   * @throws IllegalArgumentException
   *
   */
  @Test
  public void testEmptyArgs() throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    RenderResult render;
    render = (RenderResult) RenderInvokerUtils.render(new Bar(null));
    assertNotNull(render);
  }

  static class Foo extends JapidTemplateBase {
    /* based on https://github.com/branaway/Japid/issues/12
     */
    public static final String[] argNames = new String[] {/* args of the template*/"str","i"  };
    public static final String[] argTypes = new String[] {/* arg types of the template*/"String", "Integer"  };
    public static java.lang.reflect.Method renderMethod = getRenderMethod(cn.bran.japid.util.ControllerUtilsTest.Foo.class);
    {
      setRenderMethod(renderMethod);
      setArgNames(argNames);
      setArgTypes(argTypes);
    }
    public Foo(StringBuilder out) {
      super(out);
    }

    @Override
    protected void doLayout() {
    }
   
    public RenderResult render(String str, Integer i) {
      return new RenderResult();
    }
   
  }

  static class Foo2 extends Foo{
    public static final String[] argNames = new String[] {/* args of the template*/"lists", };
    public static final String[] argTypes = new String[] {/* arg types of the template*/"List<String>", };
    public static java.lang.reflect.Method renderMethod = getRenderMethod(cn.bran.japid.util.ControllerUtilsTest.Foo2.class);
    {
      setRenderMethod(renderMethod);
      setArgNames(argNames);
      setArgTypes(argTypes);
    }
    public Foo2(StringBuilder out) {
      super(out);
    }

    public RenderResult render(List<String> lists) {
      return new RenderResult();
    }
   
  }

  static class Bar extends Foo{
    public static final String[] argNames = new String[] {/* args of the template*/ };
    public static final String[] argTypes = new String[] {/* arg types of the template*/};
    public static java.lang.reflect.Method renderMethod = getRenderMethod(cn.bran.japid.util.ControllerUtilsTest.Bar.class);
    {
      setRenderMethod(renderMethod);
      setArgNames(argNames);
      setArgTypes(argTypes);
    }
    public Bar(StringBuilder out) {
      super(out);
    }
   
    public RenderResult render() {
      return new RenderResult();
    }
   
  }
}
TOP

Related Classes of cn.bran.japid.util.ControllerUtilsTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.