/******************************************************************************* * Copyright (c) 2010 Martin Schnabel <mb0@mb0.org>. * 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 ******************************************************************************/ package org.axdt.core.model; import java.util.List; import junit.textui.TestRunner; import org.axdt.core.AxdtCore; import org.axdt.core.AxdtEFactory; import org.axdt.core.MockCoreConfigProvider; import org.eclipse.core.resources.ICommand; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; /** * <!-- begin-user-doc --> * A test case for the model object '<em><b>Axdt Project Source</b></em>'. * <!-- end-user-doc --> * <p> * The following operations are tested: * <ul> * <li>{@link org.axdt.core.model.AxdtProject#getRequiredProjectNames() <em>Get Required Project Names</em>}</li> * <li>{@link org.axdt.core.model.AxdtProject#getDefaultPackageRoot() <em>Get Default Package Root</em>}</li> * <li>{@link org.axdt.core.model.AxdtProject#getConfiguredSourcePaths() <em>Get Configured Source Paths</em>}</li> * <li>{@link org.axdt.core.model.AxdtProject#addToBuildSpec(java.lang.String) <em>Add To Build Spec</em>}</li> * <li>{@link org.axdt.core.model.AxdtProject#removeFromBuildSpec(java.lang.String) <em>Remove From Build Spec</em>}</li> * <li>{@link org.axdt.core.model.AxdtProject#getPackageRoots() <em>Get Package Roots</em>}</li> * </ul> * </p> */ public class AxdtProjectSourceTest extends AxdtProjectTest { @Override protected IProject setDefaultResource() { IProject iProject = getIProject("foo"); getFixture().setProject(iProject); return iProject; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public static void main(String[] args) { TestRunner.run(AxdtProjectSourceTest.class); } /** * Constructs a new Axdt Project Source test case with the given name. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public AxdtProjectSourceTest(String name) { super(name); } /** * Returns the fixture for this Axdt Project Source test case. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected AxdtProjectSource getFixture() { return (AxdtProjectSource)fixture; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see junit.framework.TestCase#setUp() * @generated */ @Override protected void setUp() throws Exception { setFixture(AxdtEFactory.eINSTANCE.createAxdtProjectSource()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see junit.framework.TestCase#tearDown() * @generated */ @Override protected void tearDown() throws Exception { setFixture(null); } /** * Tests the '{@link org.axdt.core.model.AxdtProject#getRequiredProjectNames() <em>Get Required Project Names</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtProject#getRequiredProjectNames() */ public void testGetRequiredProjectNames() { assertNull(getFixture().getRequiredProjectNames()); setDefaultResource(); List<String> names = getFixture().getRequiredProjectNames(); assertNotNull(names); assertTrue(names.isEmpty()); } /** * Tests the '{@link org.axdt.core.model.AxdtProject#getDefaultPackageRoot() <em>Get Default Package Root</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtProject#getDefaultPackageRoot() */ public void testGetDefaultPackageRoot() { MockCoreConfigProvider.install(true); try { assertNull(getFixture().getDefaultPackageRoot()); IProject iProject = getIProject("bar"); getFixture().setProject(iProject); // if we have no configuration, use the project root AxdtPackageRoot root = getFixture().getDefaultPackageRoot(); assertEquals(iProject, root.getResource()); MockCoreConfigProvider.reinstall(false); root = getFixture().getDefaultPackageRoot(); assertNotNull(root); assertEquals("/bar/src", root.getPath().toString()); } finally { MockCoreConfigProvider.uninstall(); } } /** * Tests the '{@link org.axdt.core.model.AxdtProject#getConfiguredSourcePaths() <em>Get Configured Source Paths</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtProject#getConfiguredSourcePaths() */ public void testGetConfiguredSourcePaths() { MockCoreConfigProvider.install(true); try { assertNull(getFixture().getConfiguredSourcePaths()); getFixture().setProject(getIProject("bar")); assertTrue(getFixture().getConfiguredSourcePaths().isEmpty()); MockCoreConfigProvider.reinstall(false); List<IPath> paths = getFixture().getConfiguredSourcePaths(); assertEquals(2, getFixture().getConfiguredSourcePaths().size()); assertEquals("/bar/src", paths.get(0).toString()); assertEquals("/bar/test", paths.get(1).toString()); } finally { MockCoreConfigProvider.uninstall(); } } /** * Tests the '{@link org.axdt.core.model.AxdtProject#addToBuildSpec(java.lang.String) <em>Add To Build Spec</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @throws CoreException * @see org.axdt.core.model.AxdtProject#addToBuildSpec(java.lang.String) */ public void testAddToBuildSpec__String() throws CoreException { IProject iProject = getIProject("test"); createIProject(iProject); assertEquals(0, iProject.getDescription().getBuildSpec().length); getFixture().setProject(iProject); getFixture().addToBuildSpec("foo.bar.Spam"); ICommand[] specs = iProject.getDescription().getBuildSpec(); assertEquals(1, specs.length); assertEquals("foo.bar.Spam", specs[0].getBuilderName()); } /** * Tests the '{@link org.axdt.core.model.AxdtProject#removeFromBuildSpec(java.lang.String) <em>Remove From Build Spec</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @throws CoreException * @see org.axdt.core.model.AxdtProject#removeFromBuildSpec(java.lang.String) */ public void testRemoveFromBuildSpec__String() throws CoreException { IProject iProject = getIProject("test"); createIProject(iProject); assertEquals(0, iProject.getDescription().getBuildSpec().length); getFixture().setProject(iProject); getFixture().addToBuildSpec("foo.bar.Spam"); assertEquals(1, iProject.getDescription().getBuildSpec().length); getFixture().removeFromBuildSpec("foo.bar.Spam"); assertEquals(0, iProject.getDescription().getBuildSpec().length); } /** * Tests the '{@link org.axdt.core.model.AxdtProject#getPackageRoots() <em>Get Package Roots</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtProject#getPackageRoots() */ public void testGetPackageRoots() { MockCoreConfigProvider.install(true); try { assertNull(getFixture().getPackageRoots()); IProject iProject = getIProject("bar"); getFixture().setProject(iProject); List<AxdtPackageRoot> roots = getFixture().getPackageRoots(); assertEquals(1, roots.size()); assertEquals(iProject, roots.get(0).getResource()); MockCoreConfigProvider.reinstall(false); roots = getFixture().getPackageRoots(); assertEquals(2, roots.size()); assertEquals("/bar/src", roots.get(0).getPath().toString()); assertEquals("/bar/test", roots.get(1).getPath().toString()); } finally { MockCoreConfigProvider.uninstall(); } } @Override public void testGetParent() { assertNull(getFixture().getParent()); AxdtModel model = AxdtEFactory.eINSTANCE.createAxdtModel(); getFixture().setParent(model); assertSame(model, getFixture().getParent()); getFixture().setParent(null); assertNull(getFixture().getParent()); } public void testGetParent2() { assertNull(getFixture().getParent()); AxdtModel model = AxdtEFactory.eINSTANCE.createAxdtModel(); model.getConnectedProjects().add(getFixture()); assertSame(model, getFixture().getParent()); model.getConnectedProjects().remove(getFixture()); assertNull(getFixture().getParent()); } @Override public void testExists() { assertFalse(getFixture().exists()); setDefaultResource(); IProject iProject = getIProject("foo"); createIProject(iProject); getFixture().setProject(iProject); assertFalse(getFixture().exists()); AxdtModel model = AxdtCore.getModel(); getFixture().setParent(model); assertTrue(getFixture().exists()); // only update to equal resource handle is allowed getFixture().setProject(getIProject("foo")); assertTrue(getFixture().exists()); // or the axdt project is closed getFixture().setProject(getIProject("bar")); assertFalse(getFixture().exists()); } @Override public void testConnect() { } @Override public void testDisconnect() { } @Override public void testIsReadOnly() { } @Override public void testGetHandle() { IProject iProject = getIProject("foo"); getFixture().setProject(iProject); AxdtProjectHandle handle = getFixture().getHandle(); assertSame(iProject, handle.getProject()); assertSame(getFixture(), handle.getDelegate()); } } //AxdtProjectSourceTest