/*****************************************************************************
 * Copyright (c) 2019 CEA LIST, and others.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *   Nicolas FAUVERGUE (CEA LIST) nicolas.fauvergue@cea.fr - Initial API and implementation
 *
 *****************************************************************************/

package org.eclipse.papyrus.interoperability.sysml16.sysml14.tests.tests;


import org.eclipse.papyrus.interoperability.sysml16.sysml14.tests.Activator;
import org.eclipse.papyrus.junit.utils.rules.PluginResource;
import org.junit.Before;

/**
 * This allows to test the interoperability QvTo transformation from SysML1.4 to SysML1.6 for the requirement table.
 */
@PluginResource("resources/ExpectedResult/RequirementTable/RequirementTable_converted.di") // the name of the expected model must be the same than the name of the old Papyrus project
public class ImportSysML14RequirementTableTest extends AbstractImportSysMLModelWithNotationTests {

	/**
	 * The name of the Papyrus project to import.
	 */
	public static final String SYSML14_REQUIREMENT_TABLE_MODEL_NAME = "RequirementTable";// $NON-NLS-0$

	/**
	 * The name of the created project.
	 */
	public static final String PROJECT_NAME = "RequirementTable_testMigration"; // $NON-NLS-0$

	/**
	 * The source path of the requirement table model folder.
	 */
	private static final String SOURCE_PATH = "resources/InitialModels/RequirementTable/"; // $NON-NLS-0$

	/**
	 * This allows to initialize the test.
	 *
	 * @throws Exception
	 *             The caught exception.
	 */
	@Before
	public void initTest() throws Exception {
		super.initTest(PROJECT_NAME, SYSML14_REQUIREMENT_TABLE_MODEL_NAME, SOURCE_PATH, Activator.getDefault().getBundle());
	}

}
