package org.projectusus.metrics.util; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.core.dom.IPackageBinding; import org.eclipse.jdt.core.dom.ITypeBinding; import org.projectusus.core.project2.IUSUSProject; public class TypeBindingMocker { public static ITypeBinding createTypeBinding(String classname, String packagename) throws JavaModelException { ITypeBinding binding = mock( ITypeBinding.class ); when( binding.getErasure() ).thenReturn( binding ); when( binding.getName() ).thenReturn( classname ); IPackageBinding packageBinding = createPackageBinding( packagename ); when( binding.getPackage() ).thenReturn( packageBinding ); IJavaElement javaElement = createJavaElement(); when( binding.getJavaElement() ).thenReturn( javaElement ); return binding; } public static IPackageBinding createPackageBinding( String packagename ) { IPackageBinding packageBinding = mock( IPackageBinding.class ); when( packageBinding.getName() ).thenReturn( packagename ); return packageBinding; } public static IJavaElement createJavaElement() throws JavaModelException { IJavaElement javaElement = mock( IJavaElement.class ); IFile file = createFile(); when( javaElement.getUnderlyingResource() ).thenReturn( file ); return javaElement; } public static IFile createFile() { IFile file = mock( IFile.class ); when( file.getFileExtension() ).thenReturn( "java" ); IProject project = createProject(); when( file.getProject() ).thenReturn( project ); return file; } public static IProject createProject() { IProject project = mock( IProject.class ); when( Boolean.valueOf( project.isAccessible() ) ).thenReturn( Boolean.TRUE ); IUSUSProject ususProject = createUsusProject(); when( project.getAdapter( IUSUSProject.class ) ).thenReturn( ususProject ); return project; } public static IUSUSProject createUsusProject() { IUSUSProject ususProject = mock( IUSUSProject.class ); when( Boolean.valueOf( ususProject.isUsusProject() ) ).thenReturn( Boolean.TRUE ); return ususProject; } }