/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.eclipse.stem.core.logger.tests;

import org.eclipse.stem.core.common.tests.IdentifiableTest;

import org.eclipse.stem.core.logger.Logger;

/**
 * <!-- begin-user-doc -->
 * A test case for the model object '<em><b>Logger</b></em>'.
 * <!-- end-user-doc -->
 * @generated
 */
public abstract class LoggerTest extends IdentifiableTest {

	/**
	 * Constructs a new Logger test case with the given name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public LoggerTest(String name) {
		super(name);
	}

	/**
	 * Returns the fixture for this Logger test case.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected Logger getFixture() {
		return (Logger)fixture;
	}

} //LoggerTest
