org.eclipse.ajdt.ui.tests.refactoring.RenamePackageTest.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.ajdt.ui.tests.refactoring.RenamePackageTest.java

Source

/*******************************************************************************
 * Copyright (c) 2008 SpringSourceand 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:
 *     Andrew Eisenberg - initial version
 *******************************************************************************/
package org.eclipse.ajdt.ui.tests.refactoring;

import org.eclipse.ajdt.core.AspectJPlugin;
import org.eclipse.ajdt.ui.tests.UITestCase;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.internal.corext.refactoring.rename.RenamePackageProcessor;
import org.eclipse.ltk.core.refactoring.Change;
import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
import org.eclipse.ltk.core.refactoring.participants.ResourceChangeChecker;
import org.eclipse.ltk.core.refactoring.participants.ValidateEditChecker;

public class RenamePackageTest extends UITestCase {

    protected void setUp() throws Exception {
        super.setUp();
        if (!AspectJPlugin.USING_CU_PROVIDER) {
            fail("Must be using JDT Weaving");
        }
    }

    public void testRenamePackage() throws Exception {
        IProject proj = createPredefinedProject("Bug 254431"); //$NON-NLS-1$
        IJavaProject jProj = JavaCore.create(proj);
        IPackageFragmentRoot packRoot = jProj.getPackageFragmentRoot(proj.getFolder("src")); //$NON-NLS-1$
        IPackageFragment frag = packRoot.getPackageFragment("ajdt.renamepackagebug1"); //$NON-NLS-1$
        assertTrue("Package fragment " + frag.getElementName() + " should exist", frag.exists()); //$NON-NLS-1$ //$NON-NLS-2$
        RenamePackageProcessor processor = new RenamePackageProcessor(frag);
        processor.setNewElementName("ajdt.renamed"); //$NON-NLS-1$
        IProgressMonitor pm = new NullProgressMonitor();
        CheckConditionsContext context = new CheckConditionsContext();
        context.add(new ValidateEditChecker(context));
        context.add(new ResourceChangeChecker());
        processor.checkInitialConditions(pm);
        processor.checkFinalConditions(pm, context);
        Change change = processor.createChange(pm);
        change.perform(pm);

        waitForJobsToComplete();
        IPackageFragment newFrag = packRoot.getPackageFragment("ajdt.renamed"); //$NON-NLS-1$
        assertTrue("Package fragment " + newFrag.getElementName() + " should exist after a rename", //$NON-NLS-1$//$NON-NLS-2$
                newFrag.exists());

        IFile ajFile = proj.getFile("src/ajdt/renamed/A.aj"); //$NON-NLS-1$
        assertTrue("A.aj should exist after its package has been renamed", ajFile.exists()); //$NON-NLS-1$
        IMarker[] markers = ajFile.findMarkers(IMarker.MARKER, true, IResource.DEPTH_INFINITE);
        if (markers.length > 0) {
            StringBuffer sb = new StringBuffer();
            sb.append("No markers should have been found, but the following markers were found on A.aj:\n"); //$NON-NLS-1$
            for (int i = 0; i < markers.length; i++) {
                sb.append("\t" + markers[i].getAttribute(IMarker.MESSAGE) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
            }
            assertEquals(sb.toString(), 0, markers.length);
        }

        IFile javaFile = proj.getFile("src/ajdt/renamepackagebug2/B.aj"); //$NON-NLS-1$
        assertTrue("B.aj should exist", javaFile.exists()); //$NON-NLS-1$
        markers = javaFile.findMarkers(IMarker.MARKER, true, IResource.DEPTH_INFINITE);
        if (markers.length > 0) {
            StringBuffer sb = new StringBuffer();
            sb.append("No markers should have been found, but the following markers were found on B.aj:\n"); //$NON-NLS-1$
            for (int i = 0; i < markers.length; i++) {
                sb.append("\t" + markers[i].getAttribute(IMarker.MESSAGE) + "\n"); //$NON-NLS-1$//$NON-NLS-2$
            }
            assertEquals(sb.toString(), 0, markers.length);
        }
    }
}