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

Last change on this file since 125 was 104, checked in by boris, 19 years ago
  • elements in projects view made double-clickable
File size: 4.3 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_1 = 
65        TestModelicaRoot.class.getName() + "1";
66    private static final String PROJECT_NAME_2 = 
67        TestModelicaRoot.class.getName() + "2";
68    private static final String PROJECT_NAME_3 = 
69        TestModelicaRoot.class.getName() + "3";
70
71    @Override
72    protected void setUp() throws Exception
73    {
74        IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
75         
76        /*
77         * create a modelica project
78         */
79        IProject project = 
80            ModelicaCore.createProject(PROJECT_NAME_1, 
81                    PlatformUI.getWorkbench().getActiveWorkbenchWindow());
82        assertNotNull("failed to create project", project);
83       
84        /*
85         * create a regular projects
86         */
87        project = workspaceRoot.getProject(PROJECT_NAME_2);
88        project.create(null);
89        project.open(null);
90       
91        /*
92         * create a regular projects which remains closed
93         */
94        project = workspaceRoot.getProject(PROJECT_NAME_3);
95        project.create(null);
96
97    }
98   
99    public void testProjectsEnumeration()
100    {
101        try 
102        {
103            /*
104             * check that all wrapped (with IModelicaProject) projects have
105             * modelica nature and check that non of the unwrapped projects
106             * have modelica nature
107             */
108            Object[] projs = ModelicaCore.getModelicaRoot().getProjects();
109            for (Object p : projs)
110            {
111                if (p instanceof IModelicaProject)
112                {
113                    if (((IModelicaProject)p).getProject().isOpen())
114                    {
115                        assertTrue("project without modelica nature wrapped",
116                            ((IModelicaProject)p).getProject().
117                            hasNature(MdtPlugin.MODELICA_NATURE));
118                    }
119                }
120                else if (p instanceof IProject)
121                {
122                    if (((IProject)p).isOpen())
123                    {
124                        assertFalse("project with modelica nature not wrapped",
125                            ((IProject)p).hasNature(MdtPlugin.MODELICA_NATURE));
126                    }
127                }
128                else
129                {
130                    fail("unexpected type of project");
131                }
132            }
133        }
134        catch (CoreException e) 
135        {
136            fail("could not get projects list, exception thrown:" + e);
137        }
138    }
139}
Note: See TracBrowser for help on using the repository browser.