/******************************************************************************* * Copyright (c) 2004, 2008 Tasktop Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Tasktop Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.internal.java.ui.search; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IMethod; import org.eclipse.jdt.core.IType; import org.eclipse.mylyn.internal.java.ui.JavaStructureBridge; import org.eclipse.mylyn.internal.java.ui.junit.InteractionContextTestUtil; /** * @author Mik Kersten */ public class JUnitReferencesProvider extends AbstractJavaRelationProvider { public static final String ID = ID_GENERIC + ".junitreferences"; //$NON-NLS-1$ public static final String NAME = "tested by"; //$NON-NLS-1$ public JUnitReferencesProvider() { super(JavaStructureBridge.CONTENT_TYPE, ID); } @Override protected boolean acceptResultElement(IJavaElement element) { if (element instanceof IMethod) { IMethod method = (IMethod) element; boolean isTestMethod = false; boolean isTestCase = false; if (method.getElementName().startsWith("test")) { //$NON-NLS-1$ isTestMethod = true; } IJavaElement parent = method.getParent(); if (parent instanceof IType) { IType type = (IType) parent; isTestCase = InteractionContextTestUtil.isTestType(type); } return isTestMethod && isTestCase; } return false; } @Override protected String getSourceId() { return ID; } @Override public String getName() { return NAME; } }