/* * Copyright (C) 2008 The Guava Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.common.collect.testing; import junit.framework.TestCase; /** * This abstract base class for testers allows the framework to inject needed * information after JUnit constructs the instances. * *

This class is emulated in GWT. * * @param the type of the test generator required by this tester. An * instance of G should somehow provide an instance of the class under test, * plus any other information required to parameterize the test. * * @author George van den Driessche */ public class AbstractTester extends TestCase { private G subjectGenerator; private String suiteName; private Runnable setUp; private Runnable tearDown; // public so that it can be referenced in generated GWT tests. @Override public void setUp() throws Exception { if (setUp != null) { setUp.run(); } } // public so that it can be referenced in generated GWT tests. @Override public void tearDown() throws Exception { if (tearDown != null) { tearDown.run(); } } // public so that it can be referenced in generated GWT tests. public final void init( G subjectGenerator, String suiteName, Runnable setUp, Runnable tearDown) { this.subjectGenerator = subjectGenerator; this.suiteName = suiteName; this.setUp = setUp; this.tearDown = tearDown; } // public so that it can be referenced in generated GWT tests. public final void init(G subjectGenerator, String suiteName) { init(subjectGenerator, suiteName, null, null); } public G getSubjectGenerator() { return subjectGenerator; } /** Returns the name of the test method invoked by this test instance. */ public final String getTestMethodName() { return super.getName(); } @Override public String getName() { return Platform.format("%s[%s]", super.getName(), suiteName); } }