/******************************************************************************* * Copyright (c) 2016 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.windup.ui.tests; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.jboss.tools.windup.model.util.DocumentUtils; import org.jboss.tools.windup.windup.ConfigurationElement; import org.jboss.tools.windup.windup.Hint; import org.jboss.tools.windup.windup.QuickFix; import org.jboss.windup.tooling.data.QuickfixType; import org.junit.Assert; import org.junit.Test; /** * Tests the MarkerSyncService. */ public class MarkerSyncServiceTest extends WindupUiTest { @Test public void testStaleIssue() { ConfigurationElement configuration = super.createRunConfiguration(); runWindup(configuration); // get the first hint that contains a replacement quick fix. Hint hint = configuration.getInputs().get(0).getWindupResult().getIssues(). stream().filter(issue -> { return issue instanceof Hint; }).map(issue -> (Hint)issue). filter(issue -> { if (!issue.getQuickFixes().isEmpty()) { QuickFix fix = issue.getQuickFixes().get(0); if (QuickfixType.REPLACE.toString().equals(fix.getQuickFixType())) { return true; } } return false; }).findFirst().get(); QuickFix quickFix = hint.getQuickFixes().get(0); IMarker marker = (IMarker)hint.getMarker(); IResource original = marker.getResource(); IResource newResource = quickfixService.getQuickFixedResource(quickFix, marker); DocumentUtils.replace(original, newResource); try { ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null); } catch (CoreException e) { e.printStackTrace(); } Assert.assertTrue(hint.isStale()); } }