/******************************************************************************* * Copyright (c) 2006, 2012 IBM Corporation 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.core.tests.internal.builders; import junit.framework.Test; import junit.framework.TestSuite; import org.eclipse.core.resources.*; import org.eclipse.core.runtime.CoreException; /** * Tests the callOnEmptyDelta attribute of the builder extension */ public class EmptyDeltaTest extends AbstractBuilderTest { public static Test suite() { return new TestSuite(EmptyDeltaTest.class); } public EmptyDeltaTest() { super(""); } public EmptyDeltaTest(String name) { super(name); } public void testBuildEvents() { // Create some resource handles IProject project = getWorkspace().getRoot().getProject("TestBuildEvents"); try { // Turn auto-building off setAutoBuilding(false); // Create and open a project project.create(getMonitor()); project.open(getMonitor()); } catch (CoreException e) { fail("1.0", e); } // Create and set a build spec for the project try { IProjectDescription desc = project.getDescription(); ICommand command = desc.newCommand(); command.setBuilderName(EmptyDeltaBuilder.BUILDER_NAME); desc.setBuildSpec(new ICommand[] {command}); project.setDescription(desc, getMonitor()); } catch (CoreException e) { fail("2.0", e); } // Set up a plug-in lifecycle verifier for testing purposes EmptyDeltaBuilder verifier = null; //do an initial incremental build try { new EmptyDeltaBuilder().reset(); getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, getMonitor()); verifier = EmptyDeltaBuilder.getInstance(); verifier.addExpectedLifecycleEvent(TestBuilder.SET_INITIALIZATION_DATA); verifier.addExpectedLifecycleEvent(TestBuilder.STARTUP_ON_INITIALIZE); verifier.addExpectedLifecycleEvent(TestBuilder.DEFAULT_BUILD_ID); verifier.assertLifecycleEvents("3.1"); } catch (CoreException e) { fail("3.2", e); return; } // Now do another incremental build. Even though the delta is empty, it should be called try { verifier.reset(); getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, getMonitor()); verifier.addExpectedLifecycleEvent(TestBuilder.DEFAULT_BUILD_ID); verifier.assertLifecycleEvents("3.3"); } catch (CoreException e) { fail("3.4", e); } } }