/*******************************************************************************
 * Copyright (c) 2006, 2013 Oracle and/or its affiliates. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     Oracle - initial API and implementation
 *
 ******************************************************************************/
package org.eclipse.persistence.tools.mapping.tests.dom.orm;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

/**
 * The test suite for the unit-tests defined in the same package.
 *
 * @version 2.6
 */
@SuiteClasses({

	// Root node
	ORMConfigurationTests.class,

	// Managed types
	EmbeddableTests.class,
	MappedSuperclassTests.class,
	EntityTests.class

	// Mappings
})
@RunWith(Suite.class)
public final class AllORMTests {

	private AllORMTests() {
		super();
	}
}