/******************************************************************************* * Copyright Technophobia Ltd 2012 * * This file is part of the Substeps Eclipse Plugin. * * The Substeps Eclipse Plugin is free software: you can redistribute it and/or modify * it under the terms of the Eclipse Public License v1.0. * * The Substeps Eclipse Plugin is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * Eclipse Public License for more details. * * You should have received a copy of the Eclipse Public License * along with the Substeps Eclipse Plugin. If not, see <http://www.eclipse.org/legal/epl-v10.html>. ******************************************************************************/ package com.technophobia.substeps.runner.junit4; import org.junit.runner.Description; import org.junit.runner.Request; import com.technophobia.substeps.runner.ITestIdentifier; import com.technophobia.substeps.runner.IVisitsTestTrees; public class JUnit4TestMethodReference extends JUnit4TestReference { private final Description description; public JUnit4TestMethodReference(final Class<?> clazz, final String methodName, final String[] failureNames) { super(createRequest(clazz, methodName), failureNames); this.description = Description.createTestDescription(clazz, methodName); } private static Request createRequest(final Class<?> clazz, final String methodName) { final Description method = Description.createTestDescription(clazz, methodName); return Request.classWithoutSuiteMethod(clazz).filterWith(method); } @Override public int countTestCases() { return 1; } @Override public void sendTree(final IVisitsTestTrees notified) { notified.visitTreeEntry(getIdentifier(), false, 1); } public String getName() { return description.toString(); } @Override public boolean equals(final Object obj) { if (!(obj instanceof JUnit4TestMethodReference)) return false; final JUnit4TestMethodReference ref = (JUnit4TestMethodReference) obj; return (ref.description.equals(description)); } @Override public int hashCode() { return description.hashCode(); } @Override public String toString() { return description.toString(); } @Override public ITestIdentifier getIdentifier() { return new JUnit4Identifier(description); } }