/******************************************************************************* * Copyright (c) 2010,2017 xored software, Inc. and others. * * 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 * * Contributors: * xored software, Inc. - initial API and Implementation (Alex Panchenko) *******************************************************************************/ package org.eclipse.dltk.tcl.parser.structure; import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.Path; import org.eclipse.dltk.core.DLTKCore; import org.eclipse.dltk.core.IMethod; import org.eclipse.dltk.core.IModelElement; import org.eclipse.dltk.core.IParameter; import org.eclipse.dltk.core.ISourceModule; import org.eclipse.dltk.core.ModelException; import org.eclipse.dltk.core.tests.model.AbstractModelTests; import org.eclipse.dltk.tcl.core.tests.model.Activator; import junit.framework.Test; public class SimpleStructureParserTests extends AbstractModelTests { private static final String PROJECT_NAME = "Structure"; public SimpleStructureParserTests(String name) { super(Activator.PLUGIN_ID, name); } public static Test suite() { return new Suite(SimpleStructureParserTests.class); } @Override public void setUpSuite() throws Exception { super.setUpSuite(); setUpScriptProject(PROJECT_NAME); } @Override public void tearDownSuite() throws Exception { deleteProject(PROJECT_NAME); super.tearDownSuite(); } public void test1() throws ModelException { final ISourceModule module = DLTKCore .createSourceModuleFrom(getProject(PROJECT_NAME) .getFile(new Path("src/structure1.tcl"))); assertTrue(module.exists()); final List<IMethod> methods = new ArrayList<>(); module.accept(element -> { if (element.getElementType() == IModelElement.METHOD) { methods.add((IMethod) element); } return true; }); assertEquals(1, methods.size()); assertEquals("hello", methods.get(0).getElementName()); IParameter[] parameters = methods.get(0).getParameters(); assertEquals(1, parameters.length); assertEquals("name", parameters[0].getName()); assertNull(parameters[0].getType()); assertEquals("world", parameters[0].getDefaultValue()); } }