/**
 */
package org.eclipse.osbp.ecview.semantic.uimodel.tests;

import junit.framework.TestCase;

import org.eclipse.osbp.ecview.semantic.uimodel.UiBeanServiceConsumer;

/**
 * <!-- begin-user-doc -->
 * A test case for the model object '<em><b>Ui Bean Service Consumer</b></em>'.
 * <!-- end-user-doc -->
 * @generated
 */
public abstract class UiBeanServiceConsumerTest extends TestCase {

	/**
	 * The fixture for this Ui Bean Service Consumer test case.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UiBeanServiceConsumer fixture = null;

	/**
	 * Constructs a new Ui Bean Service Consumer test case with the given name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public UiBeanServiceConsumerTest(String name) {
		super(name);
	}

	/**
	 * Sets the fixture for this Ui Bean Service Consumer test case.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected void setFixture(UiBeanServiceConsumer fixture) {
		this.fixture = fixture;
	}

	/**
	 * Returns the fixture for this Ui Bean Service Consumer test case.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UiBeanServiceConsumer getFixture() {
		return fixture;
	}

} //UiBeanServiceConsumerTest
