/*******************************************************************************
* 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.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
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 Handle</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>
* @generated
*/
public class AxdtProjectHandleTest extends AxdtHandleTest {
@Override
protected IResource setDefaultResource() {
IProject iProject = getIProject("foo");
getFixture().setResource(iProject);
return iProject;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static void main(String[] args) {
TestRunner.run(AxdtProjectHandleTest.class);
}
/**
* Constructs a new Axdt Project Handle test case with the given name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public AxdtProjectHandleTest(String name) {
super(name);
}
/**
* Returns the fixture for this Axdt Project Handle test case.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected AxdtProjectHandle getFixture() {
return (AxdtProjectHandle)fixture;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see junit.framework.TestCase#setUp()
* @generated
*/
@Override
protected void setUp() throws Exception {
setFixture(AxdtEFactory.eINSTANCE.createAxdtProjectHandle());
}
/**
* <!-- 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();
assertFalse(getFixture().isConnected());
List<String> list = getFixture().getRequiredProjectNames();
assertTrue(getFixture().isConnected());
assertNotNull(list);
assertTrue(list.isEmpty());
// test rest in project source
}
/**
* 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() {
assertNull(getFixture().getDefaultPackageRoot());
setDefaultResource();
AxdtPackageRoot packageRoot = getFixture().getDefaultPackageRoot();
assertNotNull(packageRoot);
assertTrue(packageRoot instanceof AxdtPackageRootHandle);
}
/**
* 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() {
assertNull(getFixture().getConfiguredSourcePaths());
setDefaultResource();
List<IPath> list = getFixture().getConfiguredSourcePaths();
assertNotNull(list);
assertEquals(1, list.size());
assertEquals("/foo/src", list.get(0).toString());
}
/**
* 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 {
// delegating call connect on demand
IProject iProject = getIProject("foo");
createIProject(iProject);
getFixture().setProject(iProject);
assertFalse(getFixture().isConnected());
getFixture().addToBuildSpec("fooo");
assertTrue(getFixture().isConnected());
}
/**
* 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 {
// delegating call connect on demand
IProject iProject = getIProject("foo");
createIProject(iProject);
getFixture().setProject(iProject);
assertFalse(getFixture().isConnected());
getFixture().removeFromBuildSpec("fooo");
assertTrue(getFixture().isConnected());
}
/**
* 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() {
assertNull(getFixture().getPackageRoots());
assertFalse(getFixture().isConnected());
getFixture().setProject(getIProject("foo"));
List<AxdtPackageRoot> list = getFixture().getPackageRoots();
assertTrue(getFixture().isConnected());
assertNotNull(list);
assertFalse(list.isEmpty());
}
@Override
public void testConnect() {
assertNull(getFixture().getDelegate());
assertFalse(getFixture().isConnected());
getFixture().connect();
assertNull(getFixture().getDelegate());
assertFalse(getFixture().isConnected());
getFixture().setProject(getIProject("foo"));
getFixture().connect();
assertNotNull(getFixture().getDelegate());
assertTrue(getFixture().isConnected());
}
@Override
public void testDisconnect() {
getFixture().setProject(getIProject("foo"));
getFixture().connect();
assertNotNull(getFixture().getDelegate());
assertTrue(getFixture().isConnected());
getFixture().disconnect();
assertNull(getFixture().getDelegate());
assertFalse(getFixture().isConnected());
}
@Override
public void testCheckDelegate() {
assertNull(getFixture().checkDelegate());
getFixture().setProject(getIProject("foo"));
assertNull(getFixture().getDelegate());
assertFalse(getFixture().isConnected());
AxdtProjectSource delegate = getFixture().checkDelegate();
assertNotNull(delegate);
assertTrue(getFixture().isConnected());
assertSame(delegate, getFixture().getDelegate());
}
@Override
public void testExists() {
assertFalse(getFixture().exists());
IProject project = getIProject("test");
createIProject(project);
getFixture().setProject(project);
assertFalse(getFixture().exists());
getFixture().connect();
assertTrue(getFixture().exists());
AxdtCore.getModel().getConnectedProjects().remove(getFixture().getDelegate());
}
@Override
public void testGetParent() {
assertNull(getFixture().getParent());
IProject project = getIProject("test");
getFixture().setProject(project);
assertNull(getFixture().getParent());
getFixture().connect();
assertSame(AxdtCore.getModel(), getFixture().getParent());
}
} //AxdtProjectHandleTest