/******************************************************************************* * Copyright (c) 2006, 2009 Mountainminds GmbH & Co. KG * This software is provided under the terms of the Eclipse Public License v1.0 * See http://www.eclipse.org/legal/epl-v10.html. * * $Id$ ******************************************************************************/ package com.mountainminds.eclemma.internal.core.analysis; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import junit.framework.TestCase; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.IType; import com.mountainminds.eclemma.core.JavaProjectKit; /** * @author Marc R. Hoffmann * @version $Revision$ */ public class TypeTraverserTest extends TestCase { private static final IProgressMonitor MONITOR = new NullProgressMonitor(); private JavaProjectKit javaProject; private IPackageFragmentRoot root; protected void setUp() throws Exception { javaProject = new JavaProjectKit(); root = javaProject.createSourceFolder("src"); javaProject.createCompilationUnit(root, "testdata/src", "typetraverser/Samples.java"); JavaProjectKit.waitForBuild(); javaProject.assertNoErrors(); } protected void tearDown() throws Exception { javaProject.destroy(); } private static final String[] EXPECTEDTYPES = new String[] { "typetraverser/Samples", "typetraverser/Samples$1", "typetraverser/Samples$2$InnerB", "typetraverser/Samples$2", "typetraverser/Samples$3$InnerC", "typetraverser/Samples$3", "typetraverser/Samples$4", "typetraverser/Samples$5", "typetraverser/Samples$InnerA" }; public void testTraverse1() throws Exception { final Set expected = new HashSet(Arrays.asList(EXPECTEDTYPES)); TypeTraverser t = new TypeTraverser(new IPackageFragmentRoot[] { root }); t.process(new ITypeVisitor() { public void visit(IType type, String vmname) { assertTrue("Unexpected type: " + vmname, expected.remove(vmname)); } public void done() { } }, MONITOR); assertTrue("Not all types processed: " + expected, expected.isEmpty()); } }