/*******************************************************************************
* Copyright (c) 2013 Bruno Medeiros and other Contributors.
* 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:
* Bruno Medeiros - initial API and implementation
*******************************************************************************/
package melnorme.utilbox.tests;
import static melnorme.utilbox.core.Assert.AssertNamespace.assertTrue;
import java.io.PrintStream;
import java.util.HashSet;
import java.util.Set;
import org.junit.After;
import org.junit.Before;
import melnorme.utilbox.core.DevelopmentCodeMarkers;
import melnorme.utilbox.misc.MiscUtil;
import melnorme.utilbox.misc.SimpleLogger;
import melnorme.utilbox.ownership.OwnedObjects;
/**
* Recommended base class for all tests.
* It verifies a contract relating to the class name, which is important for test runners.
*/
public class CommonTest extends CommonTestUtils {
public CommonTest() {
DevelopmentCodeMarkers.TESTS_MODE = true;
if(isJUnitTest()) {
String klassName = getClass().getSimpleName();
// Check proper tests nomenclature:
// This to make sure the Maven build picks up the same tests as the the Eclipse JUnit launchers
assertTrue(klassName.isEmpty() ||
klassName.startsWith("Test") || klassName.endsWith("Test") || klassName.endsWith("Tests"));
}
}
public boolean isJUnitTest() {
return true;
}
public static PrintStream testsLogger = System.out;
public static SimpleLogger testsLogVerbose = SimpleLogger.create("verbose");
public static Set<String> executedTests = new HashSet<String>();
@Before
public void printSeparator() throws Exception {
String simpleName = getClass().getSimpleName();
if(!executedTests.contains(simpleName)) {
testsLogger.println("=============================== "+simpleName+" ===============================");
executedTests.add(simpleName);
}
}
protected final OwnedObjects owned = new OwnedObjects();
@After
public void dispose() throws Exception {
disposeOwned();
}
public void disposeOwned() {
owned.disposeAll();
}
/* ----------------- ----------------- */
public String getClassResource(String resourceName) {
return MiscUtil.getClassResource(getClass(), resourceName);
}
}