| /******************************************************************************* |
| * Copyright (c) 2014, 2022 1C-Soft LLC and others. |
| * |
| * This program and the accompanying materials are made available under |
| * the terms of the Eclipse Public License 2.0 which is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Vladimir Piskarev (1C) - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.handly.internal.examples.basic.ui.model; |
| |
| import java.util.Arrays; |
| |
| import org.eclipse.core.resources.IProjectDescription; |
| import org.eclipse.core.resources.IResource; |
| import org.eclipse.core.runtime.Path; |
| import org.eclipse.handly.examples.basic.ui.model.FooModelCore; |
| import org.eclipse.handly.examples.basic.ui.model.IFooFile; |
| import org.eclipse.handly.examples.basic.ui.model.IFooModel; |
| import org.eclipse.handly.examples.basic.ui.model.IFooProject; |
| import org.eclipse.handly.junit.WorkspaceTestCase; |
| |
| /** |
| * <code>FooModel</code> tests. |
| */ |
| public class FooModelTest |
| extends WorkspaceTestCase |
| { |
| private IFooModel fooModel = FooModelCore.getFooModel(); |
| |
| @Override |
| protected void setUp() throws Exception |
| { |
| super.setUp(); |
| setUpProject("Test001"); |
| setUpProject("SimpleProject"); |
| } |
| |
| public void testFooModel() throws Exception |
| { |
| IFooProject[] fooProjects = fooModel.getFooProjects(); |
| assertEquals(1, fooProjects.length); |
| IFooProject fooProject = fooProjects[0]; |
| assertEquals("Test001", fooProject.getName()); |
| IFooFile[] fooFiles = fooProject.getFooFiles(); |
| assertEquals(1, fooFiles.length); |
| IFooFile fooFile = fooFiles[0]; |
| assertEquals("test.foo", fooFile.getName()); |
| IResource[] nonFooResources = fooProject.getNonFooResources(); |
| assertEquals(4, nonFooResources.length); |
| |
| IFooProject fooProject2 = fooModel.getFooProject("Test002"); |
| assertFalse(fooProject2.exists()); |
| setUpProject("Test002"); |
| assertTrue(fooProject2.exists()); |
| fooProjects = fooModel.getFooProjects(); |
| assertEquals(2, fooProjects.length); |
| assertTrue(Arrays.asList(fooProjects).contains(fooProject)); |
| assertTrue(Arrays.asList(fooProjects).contains(fooProject2)); |
| IFooFile[] fooFiles2 = fooProject2.getFooFiles(); |
| assertEquals(1, fooFiles2.length); |
| IFooFile fooFile2 = fooFiles2[0]; |
| assertEquals("test.foo", fooFile2.getName()); |
| nonFooResources = fooProject2.getNonFooResources(); |
| assertEquals(2, nonFooResources.length); |
| |
| fooFile.getFile().delete(true, null); |
| assertFalse(fooFile.exists()); |
| assertEquals(0, fooFile.getParent().getChildren().length); |
| |
| fooFile2.getFile().move(new Path("/Test001/test.foo"), true, null); |
| assertFalse(fooFile2.exists()); |
| assertEquals(0, fooProject2.getFooFiles().length); |
| assertEquals(1, fooProject.getFooFiles().length); |
| |
| fooProject2.getProject().close(null); |
| assertFalse(fooProject2.exists()); |
| assertEquals(1, fooProject2.getParent().getChildren().length); |
| |
| fooProject2.getProject().open(null); |
| assertTrue(fooProject2.exists()); |
| assertEquals(2, fooProject2.getParent().getChildren().length); |
| |
| fooProject2.getProject().delete(true, null); |
| assertFalse(fooProject2.exists()); |
| assertEquals(1, fooProject2.getParent().getChildren().length); |
| |
| IProjectDescription description = |
| fooProject.getProject().getDescription(); |
| String[] oldNatures = description.getNatureIds(); |
| description.setNatureIds(new String[0]); |
| fooProject.getProject().setDescription(description, null); |
| assertFalse(fooProject.exists()); |
| assertFalse(fooFile.exists()); |
| assertEquals(0, fooModel.getFooProjects().length); |
| |
| description.setNatureIds(oldNatures); |
| fooProject.getProject().setDescription(description, null); |
| assertTrue(fooProject.exists()); |
| assertTrue(fooFile.exists()); |
| assertEquals(1, fooModel.getFooProjects().length); |
| |
| fooProject.getProject().move(new Path("Test"), true, null); |
| assertFalse(fooProject.exists()); |
| fooProjects = fooModel.getFooProjects(); |
| assertEquals(1, fooProjects.length); |
| fooProject = fooProjects[0]; |
| assertEquals("Test", fooProject.getName()); |
| } |
| } |