/******************************************************************************* * 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.ICommand; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; /** * <!-- begin-user-doc --> * A test case for the model object '<em><b>Axdt Model</b></em>'. * <!-- end-user-doc --> * <p> * The following operations are tested: * <ul> * <li>{@link org.axdt.core.model.AxdtModel#getProject(org.eclipse.core.resources.IProject) <em>Get Axdt Project</em>}</li> * <li>{@link org.axdt.core.model.AxdtModel#hasAxdtNature(org.eclipse.core.resources.IProject) <em>Has Axdt Nature</em>}</li> * <li>{@link org.axdt.core.model.AxdtModel#newBuilderCommand(org.eclipse.core.resources.IProjectDescription, java.lang.String) <em>New Builder Command</em>}</li> * <li>{@link org.axdt.core.model.AxdtModel#getWorkspace() <em>Get Workspace</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#getPath() <em>Get Path</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#getResource() <em>Get Resource</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#getParent() <em>Get Parent</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#isReadOnly() <em>Is Read Only</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#getElementName() <em>Get Element Name</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#open(org.eclipse.core.runtime.IProgressMonitor) <em>Open</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#sync(org.eclipse.core.runtime.IProgressMonitor) <em>Sync</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#close() <em>Close</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#isOpen() <em>Is Open</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#exists() <em>Exists</em>}</li> * <li>{@link org.axdt.core.model.AxdtElement#isHandle() <em>Is Handle</em>}</li> * </ul> * </p> */ public class AxdtModelTest extends AxdtElementTest { @Override protected IResource setDefaultResource() { throw new RuntimeException("unexpected"); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public static void main(String[] args) { TestRunner.run(AxdtModelTest.class); } /** * Constructs a new Axdt Model test case with the given name. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public AxdtModelTest(String name) { super(name); } /** * Sets the fixture for this Axdt Model test case. * <!-- begin-user-doc --> * <!-- end-user-doc --> */ protected void setFixture(AxdtModel fixture) { this.fixture = fixture; if (fixture == null) cleanUpResources(); } /** * Returns the fixture for this Axdt Model test case. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected AxdtModel getFixture() { return (AxdtModel)fixture; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see junit.framework.TestCase#setUp() * @generated */ @Override protected void setUp() throws Exception { setFixture(AxdtEFactory.eINSTANCE.createAxdtModel()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see junit.framework.TestCase#tearDown() * @generated */ @Override protected void tearDown() throws Exception { setFixture(null); } public void testSingleton() throws Exception { assertSame(getFixture(),AxdtEFactory.eINSTANCE.createAxdtModel()); } /** * Tests the '{@link org.axdt.core.model.AxdtModel#getProject(org.eclipse.core.resources.IProject) <em>Get Axdt Project</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtModel#getProject(org.eclipse.core.resources.IProject) */ public void testGetProject__IProject() { assertNull(getFixture().getProject(null)); IProject iProject = getIProject("foo"); AxdtProject project = getFixture().getProject(iProject); assertNotNull(project); assertSame(iProject.getFullPath(), project.getPath()); assertTrue(project instanceof AxdtProjectHandle); assertEquals(project, getFixture().getProject(iProject)); assertNotSame(project, getFixture().getProject(iProject)); } /** * Tests the '{@link org.axdt.core.model.AxdtModel#getPackageRoot(org.eclipse.core.resources.IResource) <em>Get Package Root</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtModel#getPackageRoot(org.eclipse.core.resources.IResource) */ public void testGetPackageRoot__IResource() { assertNull(getFixture().getPackageRoot(null)); IProject iProject = getIProject("foo"); AxdtPackageRoot root = getFixture().getPackageRoot(iProject); assertNotNull(root); assertSame(iProject.getFullPath(), root.getPath()); assertTrue(root instanceof AxdtPackageRootHandle); assertEquals(root, getFixture().getPackageRoot(iProject)); assertNotSame(root, getFixture().getPackageRoot(iProject)); } /** * Tests the '{@link org.axdt.core.model.AxdtModel#getProjects() <em>Get Projects</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @throws CoreException * @see org.axdt.core.model.AxdtModel#getProjects() */ public void testGetProjects() throws CoreException { List<AxdtProject> projects = getFixture().getProjects(); assertNotNull(projects); assertTrue(projects.isEmpty()); IProject iProject = getIProject("test"); createIProject(iProject); assertTrue(getFixture().getProjects().isEmpty()); IProjectDescription description = iProject.getDescription(); description.setNatureIds(new String[] {AxdtCore.NATURE_ID}); iProject.setDescription(description, null); AxdtProject project = getFixture().getProject(iProject); projects = getFixture().getProjects(); assertEquals(1, projects.size()); assertEquals(project, projects.get(0)); } /** * Tests the '{@link org.axdt.core.model.AxdtModel#hasAxdtNature(org.eclipse.core.resources.IProject) <em>Has Axdt Nature</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @throws CoreException * @see org.axdt.core.model.AxdtModel#hasAxdtNature(org.eclipse.core.resources.IProject) */ public void testHasAxdtNature__IProject() throws CoreException { assertFalse(getFixture().hasAxdtNature(null)); assertFalse(getFixture().hasAxdtNature(getIProject("foo"))); IProject project = getIProject("other"); createIProject(project); IProjectDescription description = project.getDescription(); description.setNatureIds(new String [] {AxdtCore.NATURE_ID}); project.setDescription(description, null); assertTrue(getFixture().hasAxdtNature(project)); } /** * Tests the '{@link org.axdt.core.model.AxdtModel#newBuilderCommand(org.eclipse.core.resources.IProjectDescription, java.lang.String) <em>New Builder Command</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @throws CoreException * @see org.axdt.core.model.AxdtModel#newBuilderCommand(org.eclipse.core.resources.IProjectDescription, java.lang.String) */ public void testNewBuilderCommand__IProjectDescription_String() throws CoreException { assertNull(getFixture().newBuilderCommand(null, null)); IProject project = getIProject("foo"); createIProject(project); IProjectDescription description = project.getDescription(); ICommand command = getFixture().newBuilderCommand(description, null); assertNotNull(command); assertEquals("", command.getBuilderName()); assertEquals("foooo", getFixture().newBuilderCommand(description, "foooo").getBuilderName()); } /** * Tests the '{@link org.axdt.core.model.AxdtModel#getWorkspace() <em>Get Workspace</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtModel#getWorkspace() */ public void testGetWorkspace() { assertSame(ResourcesPlugin.getWorkspace(), getFixture().getWorkspace()); } /** * Tests the '{@link org.axdt.core.model.AxdtModel#connectHandle(org.axdt.core.model.AxdtHandle) <em>Connect Handle</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtModel#connectHandle(org.axdt.core.model.AxdtHandle) */ public void testConnectHandle__AxdtHandle() { // should be tested in AxdtHandle.connect } public void testEResource() throws Exception { assertNotNull(getFixture().eResource()); assertSame(getFixture(),getFixture().eResource().getContents().get(0)); } @Override public void testGetPath() { assertSame(Path.ROOT, getFixture().getPath()); } @Override public void testGetResource() { assertSame(ResourcesPlugin.getWorkspace().getRoot(), getFixture().getResource()); } @Override public void testGetName() { assertEquals("", getFixture().getName()); } @Override public void testExists() { assertTrue(getFixture().exists()); } @Override public void testGetParent() { assertNull(getFixture().getParent()); } /** * Tests the '{@link org.axdt.core.model.AxdtElement#isReadOnly() <em>Is Read Only</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see org.axdt.core.model.AxdtElement#isReadOnly() */ public void testIsReadOnly() { assertFalse(getFixture().isReadOnly()); } @Override public void testIsConnected() { assertTrue(getFixture().isConnected()); } @Override public void testConnect() { // does nothing getFixture().connect(); } @Override public void testDisconnect() { // does nothing getFixture().disconnect(); } @Override public void testIsHandle() { // the model is itself the handle for the model assertTrue(getFixture().isHandle()); } @Override public void testGetHandle() { assertSame(getFixture(),getFixture().getHandle()); } } //AxdtModelTest