Package junit.extensions.eclipse.quick

Source Code of junit.extensions.eclipse.quick.ITypeMockBuilderTest

package junit.extensions.eclipse.quick;

import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.Flags;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.ITypeHierarchy;
import org.junit.Before;
import org.junit.Test;


public class ITypeMockBuilderTest {
 
  private ITypeMockBuilder builder;

  @Before
  public void before() throws Exception {
    builder = new ITypeMockBuilder();
  }
 
  @Test
  public void should_build_mock_object() throws Exception {
   
    IType build = builder.build();
    assertThat(build,is(notNullValue()));
    assertThat(build,is(instanceOf(IType.class)));
   
  }

  @Test
  public void should_return_public_accessor_object() throws Exception {
   
    IType result = builder.setPublic().build();
    assertThat(result.getFlags() & Flags.AccPublic, is(Flags.AccPublic));
   
  }
 
  @Test
  public void super_hierarchy_should_return_null_at_initialized() throws Exception {

    IType result = builder.build();
   
    assertThat(result.newSupertypeHierarchy(new NullProgressMonitor()),is(notNullValue()));
   
  }

  @Test
  public void get_methods_should_return_no_methods_at_initialized() throws Exception {
   
    IType result = builder.build();
   
    IMethod[] methods = result.getMethods();
    assertThat(methods,is(instanceOf(IMethod[].class)));
    assertThat(methods.length,is(0));
   
  }

  @Test
  public void normal_should_be_initialized() throws Exception {
   
    IType result = builder.normal_class().build();

    assertThat(result.isClass(),is(true));
    assertThat(Flags.isPublic(result.getFlags()), is(true));
    assertThat(builder.build().getMethods(),is(instanceOf(IMethod[].class)));
    assertThat(builder.build().getMethods().length,is(0));
    assertThat(result.newSupertypeHierarchy(new NullProgressMonitor()),is(notNullValue()));
   
  }
 
  @Test
  public void add_method_should_be_enabled() throws Exception {
   
    IMethod method = new IMethodMockBuilder().build();
    IType result = builder.normal_class().addMethod(method).build();
   
    IMethod[] methods = result.getMethods();
    assertThat(methods,is(instanceOf(IMethod[].class)));
    assertThat(methods.length,is(1));
   
   
  }
 
  @Test
  public void add_method_should_set_declared_type() throws Exception {
   
    IMethod method = new IMethodMockBuilder().build();
    IType result = builder.normal_class().addMethod(method).build();
   
    assertThat(method.getDeclaringType(),is(result));
   
  }
 
  @Test
  public void add_method_should_enable_to_add_2_methods() throws Exception {
 
    IMethod method1 = new IMethodMockBuilder().build();
    IMethod method2 = new IMethodMockBuilder().build();
    IType result = builder.normal_class().addMethod(method1).addMethod(method2).build();
   
    IMethod[] methods = result.getMethods();
    assertThat(methods,is(instanceOf(IMethod[].class)));
    assertThat(methods.length,is(2));
   
  }
 
  @Test
  public void junit3_class_should_extends_junit_framework_Test() throws Exception {
   
    IType result = builder.junit3_class().build();
    ITypeHierarchy hierarchy = result.newSupertypeHierarchy(new NullProgressMonitor());
    IType[] interfaces = hierarchy.getAllInterfaces();
    for (IType type : interfaces) {
      if(type.getFullyQualifiedName().equals(JavaTypes.TEST_INTERFACE_NAME)){
        return;
      }
    }
    fail("junit3 should extend org.junit.Test");
  }
 
  @Test
  public void junit3_class_should_be_public() throws Exception {
   
    IType result = builder.junit3_class().build();
    assertThat(Flags.isPublic(result.getFlags()),is(true));
   
  }
 
  @Test
  public void set_runwith_should_set_RunWith_annotation() throws Exception {
   
    IType result = builder.setRunWith("Suite.class").build();
    assertThat(result.getSource().indexOf("@RunWith(Suite.class)"),is(not(-1)));
   
  }

  @Test
  public void set_suite_classes_should_set_SuiteClasses_annotation() throws Exception {
   
    IType result = builder.setSuiteClasses().build();
    assertThat(result.getSource().indexOf("@SuiteClasses"),is(not(-1)));
   
  }

  @Test
  public void junit4_suite_classes_should_initialized() throws Exception {
   
    IType result = builder.junit4_suite().build();
    assertThat(Flags.isPublic(result.getFlags()), is(true));
    assertThat(result.getSource().indexOf("@SuiteClasses"),is(not(-1)));
    assertThat(result.getSource().indexOf("@RunWith(Suite.class)"),is(not(-1)));

  }

}
TOP

Related Classes of junit.extensions.eclipse.quick.ITypeMockBuilderTest

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.