source: trunk/org.modelica.mdt.test/src/org/modelica/mdt/test/TestModelicaRoot.java @ 101

Last change on this file since 101 was 84, checked in by boris, 19 years ago
  • class types are now displayed with name and icon
File size: 4.2 KB
Line 
1/*
2 * This file is part of Modelica Development Tooling.
3 *
4 * Copyright (c) 2005, Linköpings universitet, Department of
5 * Computer and Information Science, PELAB
6 *
7 * All rights reserved.
8 *
9 * (The new BSD license, see also
10 * http://www.opensource.org/licenses/bsd-license.php)
11 *
12 *
13 * Redistribution and use in source and binary forms, with or without
14 * modification, are permitted provided that the following conditions are
15 * met:
16 *
17 * * Redistributions of source code must retain the above copyright
18 *   notice, this list of conditions and the following disclaimer.
19 *
20 * * Redistributions in binary form must reproduce the above copyright
21 *   notice, this list of conditions and the following disclaimer in
22 *   the documentation and/or other materials provided with the
23 *   distribution.
24 *
25 * * Neither the name of Linköpings universitet nor the names of its
26 *   contributors may be used to endorse or promote products derived from
27 *   this software without specific prior written permission.
28 *
29 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
32 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 */
41
42package org.modelica.mdt.test;
43
44import org.eclipse.core.resources.IProject;
45import org.eclipse.core.resources.ResourcesPlugin;
46import org.eclipse.core.runtime.CoreException;
47import org.eclipse.core.resources.IWorkspaceRoot;
48
49import org.eclipse.ui.PlatformUI;
50
51import org.modelica.mdt.MdtPlugin;
52import org.modelica.mdt.core.IModelicaProject;
53import org.modelica.mdt.core.ModelicaCore;
54
55import junit.framework.TestCase;
56
57/**
58 * @author Elmir Jagudin
59 *
60 */
61public class TestModelicaRoot extends TestCase
62{
63
64    private static final String PROJECT_NAME = "TestModelicaRoot";
65    private static final String PROJECT_NAME2 = "TestModelicaRoot2";
66    private static final String PROJECT_NAME3 = "TestModelicaRoot3Closed";
67
68    @Override
69    protected void setUp() throws Exception
70    {
71        IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
72         
73        /*
74         * create a modelica project
75         */
76        IProject project = 
77            ModelicaCore.createProject(PROJECT_NAME, 
78                    PlatformUI.getWorkbench().getActiveWorkbenchWindow());
79        assertNotNull("failed to create project", project);
80       
81        /*
82         * create a regular projects
83         */
84        project = workspaceRoot.getProject(PROJECT_NAME2);
85        project.create(null);
86        project.open(null);
87       
88        /*
89         * create a regular projects which remains closed
90         */
91        project = workspaceRoot.getProject(PROJECT_NAME3);
92        project.create(null);
93
94    }
95   
96    public void testProjectsEnumeration()
97    {
98        try 
99        {
100            /*
101             * check that all wrapped (with IModelicaProject) projects have modelica nature
102             * and check that non of the unwrapped projects have modelica nature
103             */
104            Object[] projs = ModelicaCore.getModelicaRoot().getProjects();
105            for (Object p : projs)
106            {
107                if (p instanceof IModelicaProject)
108                {
109                    if (((IModelicaProject)p).getProject().isOpen())
110                    {
111                        assertTrue("project without modelica nature wrapped",
112                            ((IModelicaProject)p).getProject().hasNature(MdtPlugin.MODELICA_NATURE));
113                    }
114                }
115                else if (p instanceof IProject)
116                {
117                    if (((IProject)p).isOpen())
118                    {
119                        assertFalse("project with modelica nature not wrapped",
120                            ((IProject)p).hasNature(MdtPlugin.MODELICA_NATURE));
121                    }
122                }
123                else
124                {
125                    fail("unexpected type of project");
126                }
127            }
128        }
129        catch (CoreException e) 
130        {
131            fail("could not get projects list, exception thrown:" + e);
132        }
133    }
134}
Note: See TracBrowser for help on using the repository browser.