From 181757021094662d66c29d7276178f64d93df713 Mon Sep 17 00:00:00 2001 From: Heiko Klare Date: Sat, 3 Jan 2026 13:10:53 +0100 Subject: [PATCH] Make waitWhile() utility method in debug tests static The waitWhile() method for waiting until a condition is fulfilled is implemented as an instance method of AbstractDebugTest. The reason is that the test class instance itself is passed as a context to that method. This context, however, is not used by any of the method's consumers. This change removes the unnecessary context from the waitWhile() method and simplifies all consumers accordingly. With that, the method in AbstractDebugTests degrades to a pure delegation to the same method in TestUtil, which is why the method is removed from the test superclass and consumers are adapted to directly call the method in TestUtil. --- .../debug/tests/AbstractDebugTest.java | 21 --- .../src/org/eclipse/debug/tests/TestUtil.java | 17 +-- .../tests/breakpoint/BreakpointTests.java | 14 +- .../tests/console/ProcessConsoleTests.java | 17 +-- .../tests/console/RuntimeProcessTests.java | 10 +- .../launching/LaunchConfigurationTests.java | 6 +- .../viewer/model/AbstractViewerModelTest.java | 6 +- .../debug/tests/viewer/model/CheckTests.java | 14 +- .../viewer/model/ColumnPresentationTests.java | 19 +-- .../tests/viewer/model/ContentTests.java | 90 ++++++------- .../debug/tests/viewer/model/DeltaTests.java | 78 +++++------ .../debug/tests/viewer/model/FilterTests.java | 27 ++-- .../model/JFaceViewerTopIndexTests.java | 47 +++---- .../debug/tests/viewer/model/LazyTests.java | 13 +- .../tests/viewer/model/PerformanceTests.java | 30 +++-- .../debug/tests/viewer/model/PopupTests.java | 13 +- .../tests/viewer/model/SelectionTests.java | 11 +- .../debug/tests/viewer/model/StateTests.java | 125 +++++++++--------- .../debug/tests/viewer/model/UpdateTests.java | 80 +++++------ 19 files changed, 315 insertions(+), 323 deletions(-) diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AbstractDebugTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AbstractDebugTest.java index f8725ab0772..f44ad89e5ff 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AbstractDebugTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/AbstractDebugTest.java @@ -13,9 +13,6 @@ *******************************************************************************/ package org.eclipse.debug.tests; -import java.util.function.Function; -import java.util.function.Predicate; - import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -82,24 +79,6 @@ public IStatus runInUIThread(IProgressMonitor monitor) { } } - /** - * Waits while given condition is {@code true} for some time. If the actual - * wait time exceeds {@link TestUtil#DEFAULT_TIMEOUT} and condition will be still - * {@code true}, throws {@link junit.framework.AssertionFailedError} with - * given message. - *

- * Will process UI events while waiting in UI thread, if called from - * background thread, just waits. - * - * @param condition function which will be evaluated while waiting - * @param errorMessage message which will be used to construct the failure - * exception in case the condition will still return {@code true} - * after given timeout - */ - public void waitWhile(Predicate condition, Function errorMessage) throws Exception { - TestUtil.waitWhile(condition, this, errorMessage); - } - private static void closeIntro(final IWorkbench wb) { IWorkbenchWindow window = wb.getActiveWorkbenchWindow(); if (window != null) { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/TestUtil.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/TestUtil.java index 8c8828c0f96..56e942994da 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/TestUtil.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/TestUtil.java @@ -22,6 +22,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.function.BooleanSupplier; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; @@ -121,18 +122,16 @@ public static void processUIEvents(final long millis) throws Exception { * Will process UI events while waiting in UI thread, if called from * background thread, just waits. * - * @param type of the context * @param condition function which will be evaluated while waiting - * @param context test context * @param timeout max wait time in milliseconds to wait on given condition * @param errorMessage message which will be used to construct the failure * exception in case the condition will still return {@code true} * after given timeout */ - public static void waitWhile(Predicate condition, T context, long timeout, Function errorMessage) throws Exception { + public static void waitWhile(BooleanSupplier condition, long timeout, Supplier errorMessage) throws Exception { long start = System.currentTimeMillis(); Display display = Display.getCurrent(); - while (System.currentTimeMillis() - start < timeout && condition.test(context)) { + while (System.currentTimeMillis() - start < timeout && condition.getAsBoolean()) { if (display != null && !display.isDisposed()) { if (!display.readAndDispatch()) { Thread.sleep(0); @@ -141,9 +140,9 @@ public static void waitWhile(Predicate condition, T context, long timeout Thread.sleep(5); } } - Boolean stillTrue = condition.test(context); + Boolean stillTrue = condition.getAsBoolean(); if (stillTrue) { - fail(errorMessage.apply(context)); + fail(errorMessage.get()); } } @@ -156,15 +155,13 @@ public static void waitWhile(Predicate condition, T context, long timeout * Will process UI events while waiting in UI thread, if called from * background thread, just waits. * - * @param type of the context * @param condition function which will be evaluated while waiting - * @param context test context * @param errorMessage message which will be used to construct the failure * exception in case the condition will still return {@code true} * after given timeout */ - public static void waitWhile(Predicate condition, T context, Function errorMessage) throws Exception { - waitWhile(condition, context, DEFAULT_TIMEOUT, errorMessage); + public static void waitWhile(BooleanSupplier condition, Supplier errorMessage) throws Exception { + waitWhile(condition, DEFAULT_TIMEOUT, errorMessage); } /** diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java index 4355954466d..148f63bb664 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/breakpoint/BreakpointTests.java @@ -86,20 +86,20 @@ public void testBug424561_undoRedoUndoGone() throws Exception { IUndoContext context = DebugUITools.getBreakpointsUndoContext(); bpm.addBreakpoint(bp); - TestUtil.waitWhile(c -> c.getTestBreakpoints().isEmpty(), this, c -> "Breakpoint is not created"); + TestUtil.waitWhile(() -> getTestBreakpoints().isEmpty(), () -> "Breakpoint is not created"); assertTrue("Breakpoint marker missing", bp.getMarker().exists()); assertTrue("Breakpoint not registered", bp.isRegistered()); DebugUITools.deleteBreakpoints(new IBreakpoint[] { bp }, null, null); assertTrue(operationHistory.canUndo(context)); - TestUtil.waitWhile(c -> !c.getTestBreakpoints().isEmpty(), this, c -> "Breakpoint is not deleted"); + TestUtil.waitWhile(() -> !getTestBreakpoints().isEmpty(), () -> "Breakpoint is not deleted"); assertFalse("Breakpoint marker not removed", bp.getMarker().exists()); assertFalse("Breakpoint still registered", bp.isRegistered()); operationHistory.undo(context, null, null); assertTrue(operationHistory.canRedo(context)); - TestUtil.waitWhile(c -> c.getTestBreakpoints().isEmpty(), this, c -> "Breakpoint is not recreated"); + TestUtil.waitWhile(() -> getTestBreakpoints().isEmpty(), () -> "Breakpoint is not recreated"); bp = getTestBreakpoints().get(0); assertEquals("Breakpoint attributes not correctly restored", content, bp.getText()); assertTrue("Breakpoint marker missing", bp.getMarker().exists()); @@ -107,13 +107,13 @@ public void testBug424561_undoRedoUndoGone() throws Exception { operationHistory.redo(context, null, null); assertTrue(operationHistory.canUndo(context)); - TestUtil.waitWhile(c -> !c.getTestBreakpoints().isEmpty(), this, c -> "Breakpoint is not deleted"); + TestUtil.waitWhile(() -> !getTestBreakpoints().isEmpty(), () -> "Breakpoint is not deleted"); assertFalse("Breakpoint marker not removed", bp.getMarker().exists()); assertFalse("Breakpoint still registered", bp.isRegistered()); operationHistory.undo(context, null, null); assertTrue(operationHistory.canRedo(context)); - TestUtil.waitWhile(c -> c.getTestBreakpoints().isEmpty(), this, c -> "Breakpoint is not recreated"); + TestUtil.waitWhile(() -> getTestBreakpoints().isEmpty(), () -> "Breakpoint is not recreated"); bp = getTestBreakpoints().get(0); assertEquals("Breakpoint attributes not correctly restored", content, bp.getText()); assertTrue("Breakpoint marker missing", bp.getMarker().exists()); @@ -121,10 +121,10 @@ public void testBug424561_undoRedoUndoGone() throws Exception { final BreakpointsView finalView = view; final TestBreakpoint finalBp = bp; - TestUtil.waitWhile(c -> { + TestUtil.waitWhile(() -> { TreeItem item = (TreeItem) finalView.getTreeModelViewer().testFindItem(finalBp); return item == null || item.getText() == null || !item.getText().contains(content); - }, this, c -> "Breakpoint not restored in view"); + }, () -> "Breakpoint not restored in view"); } finally { if (!viewVisible) { DebugUIPlugin.getActiveWorkbenchWindow().getActivePage().hideView(view); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java index 351744c6958..b2885ff4e49 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ProcessConsoleTests.java @@ -15,6 +15,7 @@ import static java.nio.file.Files.readAllBytes; import static org.assertj.core.api.Assertions.assertThat; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -35,8 +36,8 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Function; -import java.util.function.Predicate; +import java.util.function.BooleanSupplier; +import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -296,7 +297,7 @@ public void processTerminationTest(ILaunchConfiguration launchConfig, boolean te if (mockProcess.isAlive()) { mockProcess.destroy(); } - waitWhile(__ -> !terminationSignaled.get(), __ -> "No console complete notification received."); + waitWhile(() -> !terminationSignaled.get(), () -> "No console complete notification received."); } finally { consoleManager.removeConsoles(new IConsole[] { console }); TestUtil.waitForJobs(name.getMethodName(), ConsoleManager.CONSOLE_JOB_FAMILY, 0, 10000); @@ -395,7 +396,7 @@ private IOConsole doConsoleOutputTest(byte[] testContent, Map la try { consoleManager.addConsoles(new IConsole[] { console }); mockProcess.destroy(); - waitWhile(c -> !consoleFinished.get(), c -> "Console did not finished."); + waitWhile(() -> !consoleFinished.get(), () -> "Console did not finished."); Object value = launchConfigAttributes != null ? launchConfigAttributes.get(IDebugUIConstants.ATTR_CAPTURE_IN_FILE) : null; final File outFile = value != null ? new File((String) value) : null; @@ -452,7 +453,7 @@ public void testOutput() throws Exception { mockProcess.destroy(); sysout.close(); - Predicate waitForLastLineWritten = __ -> { + BooleanSupplier waitForLastLineWritten = () -> { try { TestUtil.processUIEvents(50); } catch (Exception e) { @@ -460,7 +461,7 @@ public void testOutput() throws Exception { } return console.getDocument().getNumberOfLines() < lines.length; }; - Function errorMessageProvider = __ -> { + Supplier errorMessageProvider = () -> { String expected = String.join(System.lineSeparator(), lines); String actual = console.getDocument().get(); return "Not all lines have been written, expected: " + expected + ", was: " + actual; @@ -503,7 +504,7 @@ public void testBinaryOutputToFile() throws Exception { try { console.initialize(); - Predicate waitForFileWritten = __ -> { + BooleanSupplier waitForFileWritten = () -> { try { TestUtil.processUIEvents(20); return readAllBytes(outFile.toPath()).length < output.length; @@ -512,7 +513,7 @@ public void testBinaryOutputToFile() throws Exception { } return false; }; - Function errorMessageProvider = __ -> { + Supplier errorMessageProvider = () -> { byte[] actualOutput = new byte[0]; try { actualOutput = readAllBytes(outFile.toPath()); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java index ebb7dcf6af0..ab271b7a4fd 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/RuntimeProcessTests.java @@ -64,7 +64,7 @@ public void testProcessTerminated() throws Exception { mockProcess.setExitValue(1); mockProcess.destroy(); - TestUtil.waitWhile(p -> !p.isTerminated(), runtimeProcess, p -> "RuntimeProcess not terminated."); + TestUtil.waitWhile(() -> !runtimeProcess.isTerminated(), () -> "RuntimeProcess not terminated."); TestUtil.waitForJobs(name.getMethodName(), 25, TestUtil.DEFAULT_TIMEOUT); assertEquals("Wrong number of terminate events.", 1, processTerminateEvents.get()); assertEquals("RuntimeProcess reported wrong exit code.", 1, runtimeProcess.getExitValue()); @@ -92,7 +92,7 @@ public void testTerminateProcess() throws Exception { runtimeProcess.terminate(); assertFalse("RuntimeProcess failed to terminate wrapped process.", mockProcess.isAlive()); - TestUtil.waitWhile(p -> !p.isTerminated(), runtimeProcess, p -> "RuntimeProcess not terminated."); + TestUtil.waitWhile(() -> !runtimeProcess.isTerminated(), () -> "RuntimeProcess not terminated."); TestUtil.waitForJobs(name.getMethodName(), 25, TestUtil.DEFAULT_TIMEOUT); assertEquals("Wrong number of terminate events.", 1, processTerminateEvents.get()); assertEquals("RuntimeProcess reported wrong exit code.", 1, runtimeProcess.getExitValue()); @@ -129,7 +129,7 @@ public void testTerminateProcessWithSubProcesses() throws Exception { assertFalse("RuntimeProcess failed to terminate child of wrapped process.", childProcess2.isAlive()); assertFalse("RuntimeProcess failed to terminate descendant of wrapped process.", grandChildProcess.isAlive()); - TestUtil.waitWhile(p -> !p.isTerminated(), runtimeProcess, p -> "RuntimeProcess not terminated."); + TestUtil.waitWhile(() -> !runtimeProcess.isTerminated(), () -> "RuntimeProcess not terminated."); } /** @@ -154,7 +154,7 @@ public void testTerminateProcessWithoutTerminatingDescendents() throws Exception assertFalse("RuntimeProcess failed to terminate wrapped process.", mockProcess.isAlive()); assertTrue("RuntimeProcess terminated child of wrapped process, unlike configured.", childProcess.isAlive()); - TestUtil.waitWhile(p -> !p.isTerminated(), runtimeProcess, p -> "RuntimeProcess not terminated."); + TestUtil.waitWhile(() -> !runtimeProcess.isTerminated(), () -> "RuntimeProcess not terminated."); } /** @@ -173,7 +173,7 @@ public void testTerminateProcessNotSupportingProcessToHandle() throws Exception RuntimeProcess runtimeProcess = mockProcess.toRuntimeProcess(); runtimeProcess.terminate(); // must not throw, even toHandle() does - TestUtil.waitWhile(p -> !p.isTerminated(), runtimeProcess, p -> "RuntimeProcess not terminated."); + TestUtil.waitWhile(() -> !runtimeProcess.isTerminated(), () -> "RuntimeProcess not terminated."); } /** diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java index 9636f7914a2..7fed5aeb080 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/launching/LaunchConfigurationTests.java @@ -15,6 +15,7 @@ package org.eclipse.debug.tests.launching; import static org.assertj.core.api.Assertions.assertThat; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; @@ -1306,8 +1307,7 @@ public void launchesTerminated(ILaunch[] launches) { IProcess process = null; try { process = DebugPlugin.newProcess(launch, new MockProcess(0), "test-terminate-timestamp"); - waitWhile(__ -> !terminatedLaunches.contains(launch), - __ -> "Launch termination event did not occur: "+ + waitWhile(() -> !terminatedLaunches.contains(launch), () -> "Launch termination event did not occur: " + "launch termination state is \"" + launch.isTerminated() + "\" " + "and " + terminatedLaunches.size() + " launches have terminated"); String launchTerminateTimestampUntyped = launch.getAttribute(DebugPlugin.ATTR_TERMINATE_TIMESTAMP); @@ -1454,7 +1454,7 @@ public void addProcess(IProcess process) { IProcess runtimeProcess = null; try { runtimeProcess = DebugPlugin.newProcess(launch, mockProcess, "test-terminate-launch-listener"); - waitWhile(__ -> !launchTerminated.get(), __ -> "Launch termination event did not occur"); + waitWhile(() -> !launchTerminated.get(), () -> "Launch termination event did not occur"); } finally { DebugPlugin.getDefault().getLaunchManager().removeLaunchListener(listener); if (launch != null) { diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java index 74545efbbc3..6b5355fcf4a 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/AbstractViewerModelTest.java @@ -13,7 +13,7 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; -import java.util.function.Function; +import java.util.function.Supplier; import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer; import org.eclipse.debug.tests.AbstractDebugTest; @@ -62,8 +62,8 @@ public void tearDown() throws Exception { abstract protected TestModelUpdatesListener createListener(IInternalTreeModelViewer viewer); - protected Function createListenerErrorMessage() { - return t -> "Listener not finished: " + fListener; + protected Supplier createListenerErrorMessage() { + return () -> "Listener not finished: " + fListener; } } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java index 4099454ef83..f0736277ffd 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java @@ -14,6 +14,8 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; + import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer; import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta; import org.eclipse.debug.tests.viewer.model.TestModel.TestElement; @@ -54,7 +56,7 @@ public void testSimpleSingleLevel() throws Exception { fViewer.setInput(model.getRootElement()); // Wait for the updates to complete. - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -70,7 +72,7 @@ public void testSimpleMultiLevel() throws Exception { fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -85,7 +87,7 @@ public void testCheckReceiver() throws Exception { fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); TestElement element = model.getRootElement().getChildren()[0]; @@ -96,7 +98,7 @@ public void testCheckReceiver() throws Exception { fListener.reset(elementPath, element, -1, true, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(ITestModelUpdatesListenerConstants.MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ITestModelUpdatesListenerConstants.MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); Assert.assertTrue(element.getChecked() != initialCheckState); } @@ -113,7 +115,7 @@ public void testUpdateCheck() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -124,7 +126,7 @@ public void testUpdateCheck() throws Exception { fListener.reset(elementPath, element, -1, true, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(ITestModelUpdatesListenerConstants.LABEL_COMPLETE | ITestModelUpdatesListenerConstants.MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ITestModelUpdatesListenerConstants.LABEL_COMPLETE | ITestModelUpdatesListenerConstants.MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java index 1ac5939dcc0..7b8e2060eb8 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ColumnPresentationTests.java @@ -14,10 +14,11 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertEquals; import java.util.Arrays; -import java.util.function.Function; +import java.util.function.Supplier; import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation; import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation2; @@ -251,7 +252,7 @@ private TestModel makeModel(MyColumnPresentation cp, String rootSufffix) throws new TestElement(model, "6", new TestElement[0]) })); //$NON-NLS-1$ fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); return model; } @@ -350,10 +351,10 @@ public void testRespectUserSettings() throws Exception { // get InternalTreeModelViewer to rebuild columns due to hide and show columns fViewer.setShowColumns(false); TestUtil.processUIEvents(); - waitWhile(t -> fViewer.getTree().getColumns().length > 0, createColumnsErrorMessage()); + waitWhile(() -> fViewer.getTree().getColumns().length > 0, createColumnsErrorMessage()); fViewer.setShowColumns(true); TestUtil.processUIEvents(); - waitWhile(t -> fViewer.getTree().getColumns().length != newWidths.length, createColumnsErrorMessage()); + waitWhile(() -> fViewer.getTree().getColumns().length != newWidths.length, createColumnsErrorMessage()); // verify user resized widths are used instead of the initial widths from IColumnPresentation2 columns = fViewer.getTree().getColumns(); for (int i = 0; i < columns.length; i++) { @@ -411,7 +412,7 @@ public void testChangedColumnIds() throws Exception { // Select visible columns fViewer.setVisibleColumns(new String[] { colPre.columnIds[0] }); TestUtil.processUIEvents(); - waitWhile(t -> fViewer.getTree().getColumns().length != 1, createColumnsErrorMessage()); + waitWhile(() -> fViewer.getTree().getColumns().length != 1, createColumnsErrorMessage()); // get InternalTreeModelViewer to rebuild columns due to change of // model and presentation - first set to another model and column @@ -431,11 +432,11 @@ public void testChangedColumnIds() throws Exception { } } - private Function createColumnsErrorMessage() { - return t -> "Unexpected columns number: " + fViewer.getTree().getColumns().length; + private Supplier createColumnsErrorMessage() { + return () -> "Unexpected columns number: " + fViewer.getTree().getColumns().length; } - private Function createListenerErrorMessage() { - return t -> "Listener not finished: " + fListener; + private Supplier createListenerErrorMessage() { + return () -> "Listener not finished: " + fListener; } } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java index f88c3143d8c..7a0da8895f3 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/ContentTests.java @@ -14,13 +14,14 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.function.Function; +import java.util.function.Supplier; import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer; import org.eclipse.debug.internal.ui.viewers.model.provisional.ICheckUpdate; @@ -29,7 +30,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta; import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate; import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta; -import org.eclipse.debug.tests.AbstractDebugTest; import org.eclipse.debug.tests.TestUtil; import org.eclipse.debug.tests.viewer.model.TestModel.TestElement; import org.eclipse.jface.viewers.TreePath; @@ -66,7 +66,7 @@ public void testSimpleSingleLevel() throws Exception { fViewer.setInput(model.getRootElement()); // Wait for the updates to complete. - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -84,7 +84,7 @@ public void testSimpleMultiLevel() throws Exception { fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -104,36 +104,36 @@ static class TestModelWithCapturedUpdates extends TestModel { @Override public void update(IChildrenUpdate[] updates) { - for (int i = 0; i < updates.length; i++) { - TestElement element = (TestElement)updates[i].getElement(); - int endOffset = updates[i].getOffset() + updates[i].getLength(); - for (int j = updates[i].getOffset(); j < endOffset; j++) { + for (IChildrenUpdate update : updates) { + TestElement element = (TestElement)update.getElement(); + int endOffset = update.getOffset() + update.getLength(); + for (int j = update.getOffset(); j < endOffset; j++) { if (j < element.getChildren().length) { - updates[i].setChild(element.getChildren()[j], j); + update.setChild(element.getChildren()[j], j); } } if (fCaptureChildrenUpdates) { - fCapturedUpdates.add(updates[i]); + fCapturedUpdates.add(update); } else { - updates[i].done(); + update.done(); } } } @Override public void update(ILabelUpdate[] updates) { - for (int i = 0; i < updates.length; i++) { - TestElement element = (TestElement)updates[i].getElement(); - updates[i].setLabel(element.getLabel(), 0); - if (updates[i] instanceof ICheckUpdate && - Boolean.TRUE.equals(updates[i].getPresentationContext().getProperty(ICheckUpdate.PROP_CHECK))) + for (ILabelUpdate update : updates) { + TestElement element = (TestElement)update.getElement(); + update.setLabel(element.getLabel(), 0); + if (update instanceof ICheckUpdate && + Boolean.TRUE.equals(update.getPresentationContext().getProperty(ICheckUpdate.PROP_CHECK))) { - ((ICheckUpdate)updates[i]).setChecked(element.getChecked(), element.getGrayed()); + ((ICheckUpdate)update).setChecked(element.getChecked(), element.getGrayed()); } if (fCaptureLabelUpdates) { - fCapturedUpdates.add(updates[i]); + fCapturedUpdates.add(update); } else { - updates[i].done(); + update.done(); } } } @@ -158,7 +158,7 @@ public void testLabelUpdatesCompletedOutOfSequence1() throws Exception { // Wait for view to start retrieving content. fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); + waitWhile(() -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); List firstUpdates = model.fCapturedUpdates; model.fCapturedUpdates = Collections.synchronizedList(new ArrayList<>(2)); @@ -168,28 +168,28 @@ public void testLabelUpdatesCompletedOutOfSequence1() throws Exception { model.getElement(model.findElement("2")).setLabelAppendix(" - changed"); //$NON-NLS-1$ //$NON-NLS-2$ fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, false, false); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); + waitWhile(() -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); // Complete the second set of children updates - for (int i = 0; i < model.fCapturedUpdates.size(); i++) { - model.fCapturedUpdates.get(i).done(); + for (IViewerUpdate element : model.fCapturedUpdates) { + element.done(); } // Then complete the first set. - for (int i = 0; i < firstUpdates.size(); i++) { - ILabelUpdate capturedUpdate = (ILabelUpdate)firstUpdates.get(i); + for (IViewerUpdate firstUpdate : firstUpdates) { + ILabelUpdate capturedUpdate = (ILabelUpdate)firstUpdate; assertTrue(capturedUpdate.isCanceled()); capturedUpdate.done(); } - waitWhile(t -> !fListener.isFinished(CHILDREN_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CHILDREN_UPDATES), createListenerErrorMessage()); // Check viewer data model.validateData(fViewer, TreePath.EMPTY); } - private Function createModelErrorMessage(TestModelWithCapturedUpdates model) { - return t -> "Unxexpected model state: captured updates: " + model.fCapturedUpdates + ", root children: " + Arrays.toString(model.getRootElement().fChildren); + private Supplier createModelErrorMessage(TestModelWithCapturedUpdates model) { + return () -> "Unxexpected model state: captured updates: " + model.fCapturedUpdates + ", root children: " + Arrays.toString(model.getRootElement().fChildren); } /** @@ -214,7 +214,7 @@ public void testLabelUpdatesCompletedOutOfSequence2() throws Exception { // Wait for view to start retrieving content. fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); + waitWhile(() -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); List firstUpdates = model.fCapturedUpdates; model.fCapturedUpdates = Collections.synchronizedList(new ArrayList<>(2)); @@ -225,21 +225,21 @@ public void testLabelUpdatesCompletedOutOfSequence2() throws Exception { }); fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, false, false); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); + waitWhile(() -> model.fCapturedUpdates.size() < model.getRootElement().fChildren.length, createModelErrorMessage(model)); // Complete the second set of children updates - for (int i = 0; i < model.fCapturedUpdates.size(); i++) { - model.fCapturedUpdates.get(i).done(); + for (IViewerUpdate element : model.fCapturedUpdates) { + element.done(); } // Then complete the first set. - for (int i = 0; i < firstUpdates.size(); i++) { - ILabelUpdate capturedUpdate = (ILabelUpdate)firstUpdates.get(i); + for (IViewerUpdate firstUpdate : firstUpdates) { + ILabelUpdate capturedUpdate = (ILabelUpdate)firstUpdate; assertTrue(capturedUpdate.isCanceled()); capturedUpdate.done(); } - waitWhile(t -> !fListener.isFinished(CHILDREN_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CHILDREN_UPDATES), createListenerErrorMessage()); // Check viewer data model.validateData(fViewer, TreePath.EMPTY); @@ -266,7 +266,7 @@ public void _x_testChildrenUpdatesCompletedOutOfSequence() throws Exception { // Set input into the view to update it, but block children updates. // Wait for view to start retrieving content. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !areCapturedChildrenUpdatesComplete(model.fCapturedUpdates, model.getRootElement().fChildren.length), createModelErrorMessage(model)); + waitWhile(() -> !areCapturedChildrenUpdatesComplete(model.fCapturedUpdates, model.getRootElement().fChildren.length), createModelErrorMessage(model)); IChildrenUpdate[] firstUpdates = model.fCapturedUpdates.toArray(new IChildrenUpdate[0]); model.fCapturedUpdates.clear(); @@ -277,19 +277,19 @@ public void _x_testChildrenUpdatesCompletedOutOfSequence() throws Exception { }); fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, false, false); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !areCapturedChildrenUpdatesComplete(model.fCapturedUpdates, model.getRootElement().fChildren.length), createModelErrorMessage(model)); + waitWhile(() -> !areCapturedChildrenUpdatesComplete(model.fCapturedUpdates, model.getRootElement().fChildren.length), createModelErrorMessage(model)); // Complete the second set of children updates - for (int i = 0; i < model.fCapturedUpdates.size(); i++) { - model.fCapturedUpdates.get(i).done(); + for (IViewerUpdate element : model.fCapturedUpdates) { + element.done(); } // Then complete the first set. - for (int i = 0; i < firstUpdates.length; i++) { - firstUpdates[i].done(); + for (IChildrenUpdate firstUpdate : firstUpdates) { + firstUpdate.done(); } - waitWhile(t -> !fListener.isFinished(CHILDREN_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CHILDREN_UPDATES), createListenerErrorMessage()); // Check viewer data model.validateData(fViewer, TreePath.EMPTY); @@ -301,9 +301,9 @@ private boolean areCapturedChildrenUpdatesComplete(List capturedU expectedChildren.add(Integer.valueOf(i)); } IChildrenUpdate[] updates = capturedUpdates.toArray(new IChildrenUpdate[0]); - for (int i = 0; i < updates.length; i++) { - for (int j = 0; j < updates[i].getLength(); j++) { - expectedChildren.remove( Integer.valueOf(updates[i].getOffset() + j) ); + for (IChildrenUpdate update : updates) { + for (int j = 0; j < update.getLength(); j++) { + expectedChildren.remove( Integer.valueOf(update.getOffset() + j) ); } } return expectedChildren.isEmpty(); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java index 49c67557ce0..27f252dd537 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/DeltaTests.java @@ -14,12 +14,14 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.Arrays; import java.util.List; + import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer; import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta; import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta; @@ -53,7 +55,7 @@ public void testUpdateLabel() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -63,7 +65,7 @@ public void testUpdateLabel() throws Exception { fListener.reset(elementPath, element, -1, true, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(LABEL_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(LABEL_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -79,7 +81,7 @@ public void testRefreshStruct() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -94,7 +96,7 @@ public void testRefreshStruct() throws Exception { fListener.reset(elementPath, element, -1, true, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -110,7 +112,7 @@ public void testRefreshStruct2() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); String prefix = "new - "; //$NON-NLS-1$ @@ -144,7 +146,7 @@ public void testRefreshStruct2() throws Exception { fListener.reset(TreePath.EMPTY, element, -1, false, false); model.postDelta(new ModelDelta(element, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -168,12 +170,12 @@ public void testRefreshCoalesceStruct() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, false, false); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); assertTrue( fListener.checkCoalesced(TreePath.EMPTY, 0, 6) ); @@ -192,7 +194,7 @@ public void testInsert() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -210,7 +212,7 @@ public void testInsert() throws Exception { // TODO: redundant label updates on insert! fListener.setFailOnRedundantUpdates(false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -231,7 +233,7 @@ public void testInsertAndSelect() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -258,7 +260,7 @@ public void testInsertAndSelect() throws Exception { fListener.setFailOnRedundantUpdates(false); model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -276,7 +278,7 @@ public void testInsertAndRemove() throws Exception { fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -303,7 +305,7 @@ public void testInsertAndRemove() throws Exception { fListener.setFailOnRedundantUpdates(false); model.postDelta(combinedDelta); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -320,7 +322,7 @@ public void testAddElement() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -334,7 +336,7 @@ public void testAddElement() throws Exception { // TODO: redundant updates on add! fListener.setFailOnRedundantUpdates(false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -352,7 +354,7 @@ public void _x_testAddUnexpandedElement() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); // Update the model TreePath parentPath = model.findElement("1"); //$NON-NLS-1$ @@ -365,7 +367,7 @@ public void _x_testAddUnexpandedElement() throws Exception { fListener.reset(); fListener.setFailOnRedundantUpdates(false); model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Update the elements that were added. fListener.reset(); @@ -377,12 +379,12 @@ public void _x_testAddUnexpandedElement() throws Exception { model.getElementDelta(rootDelta, model.findElement("1.4"), true).setFlags(IModelDelta.CONTENT); //$NON-NLS-1$ model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | ALL_UPDATES_COMPLETE), createListenerErrorMessage()); fListener.reset(parentPath, model.getElement(parentPath), 1, false, true); fViewer.expandToLevel(parentPath, 1); - waitWhile(t -> fListener.isFinished(CONTENT_SEQUENCE_STARTED) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> fListener.isFinished(CONTENT_SEQUENCE_STARTED) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, parentPath); } @@ -400,14 +402,14 @@ public void _x_testRefreshUnexpandedElementsChildren() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); // Expand elment "2" TreePath parentPath = model.findElement("2"); //$NON-NLS-1$ fListener.reset(parentPath, model.getElement(parentPath), 1, false, true); fViewer.expandToLevel(parentPath, 1); - waitWhile(t -> fListener.isFinished(CONTENT_SEQUENCE_STARTED) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> fListener.isFinished(CONTENT_SEQUENCE_STARTED) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Collapse back element "2" fViewer.setExpandedState(parentPath, false); @@ -421,13 +423,13 @@ public void _x_testRefreshUnexpandedElementsChildren() throws Exception { model.getElementDelta(rootDelta, model.findElement("2.3"), true).setFlags(IModelDelta.CONTENT); //$NON-NLS-1$ model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Expand back element "2" fListener.reset(parentPath, model.getElement(parentPath), 1, false, true); fViewer.expandToLevel(parentPath, 1); - waitWhile(t -> fListener.isFinished(CONTENT_SEQUENCE_STARTED) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> fListener.isFinished(CONTENT_SEQUENCE_STARTED) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, parentPath, true); } @@ -444,7 +446,7 @@ public void testRemove() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -454,7 +456,7 @@ public void testRemove() throws Exception { // be processed. fListener.reset(); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -467,7 +469,7 @@ public void testExpandAndSelect() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Create the delta @@ -520,7 +522,7 @@ public void testExpandAndSelect() throws Exception { assertFalse(contentProviderViewer.getExpandedState(path_root_3_2_2)); model.postDelta(deltaRoot); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Validate the expansion state AFTER posting the delta. @@ -550,7 +552,7 @@ public void testExpandAndSelect_simple() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Create the delta @@ -574,7 +576,7 @@ public void testExpandAndSelect_simple() throws Exception { model.postDelta(deltaRoot); TestUtil.processUIEvents(); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Validate the expansion state AFTER posting the delta. @@ -603,7 +605,7 @@ public void testCompositeModelRefreshStruct() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Update the model @@ -620,7 +622,7 @@ public void testCompositeModelRefreshStruct() throws Exception { fListener.reset(m4_2_1Path, m4_2_1, -1, true, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -635,7 +637,7 @@ public void testCompositeModelAddElement() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); TreePath m3_1Path = model.findElement("m3.1"); //$NON-NLS-1$ @@ -650,7 +652,7 @@ public void testCompositeModelAddElement() throws Exception { fListener.setFailOnRedundantUpdates(false); m3.postDelta(delta); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -663,7 +665,7 @@ public void testBug292322() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Update the model: remove one child of an un-expanded element, then @@ -676,7 +678,7 @@ public void testBug292322() throws Exception { fListener.reset(parentPath, parentElement, 0, false, false); //fListener.addChildreCountUpdate(parentPath); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_COMPLETE), createListenerErrorMessage()); // Validate the viewer data. model.validateData(fViewer, TreePath.EMPTY, true); @@ -688,7 +690,7 @@ public void testBug292322() throws Exception { // Update the viewer fListener.reset(parentPath, parentElement, 0, false, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_COMPLETE), createListenerErrorMessage()); // Validate the viewer data. model.validateData(fViewer, TreePath.EMPTY, true); @@ -700,7 +702,7 @@ public void testBug292322() throws Exception { // Update the viewer fListener.reset(parentPath, parentElement, 0, false, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_COMPLETE), createListenerErrorMessage()); // Validate the viewer data. model.validateData(fViewer, TreePath.EMPTY, true); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java index d1142715efd..dcae9b73c7b 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/FilterTests.java @@ -15,6 +15,7 @@ package org.eclipse.debug.tests.viewer.model; import static org.assertj.core.api.Assertions.assertThat; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertTrue; import java.util.regex.Pattern; @@ -146,7 +147,7 @@ private void doTestSimpleLevel(TestModel model, ViewerFilter[] filters) throws E fViewer.setInput(model.getRootElement()); // Wait for the updates to complete. - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, false, filters); } @@ -175,7 +176,7 @@ private void doTestLargeSingleLevel(ViewerFilter[] filters) throws Exception { fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); } @@ -214,7 +215,7 @@ private void doTestReplacedUnrealizedFilteredElement(ViewerFilter[] filters) thr fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Switch out element "201" which is filtered out, with a "replaced element" which should NOT be // filtered out. @@ -222,12 +223,12 @@ private void doTestReplacedUnrealizedFilteredElement(ViewerFilter[] filters) thr IModelDelta replaceDelta = model.replaceElementChild(TreePath.EMPTY, 200, replacedElement); fListener.reset(); model.postDelta(replaceDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Reposition the viewer to make element 100 the top element, making the replaced element visible. fListener.reset(); fViewer.reveal(TreePath.EMPTY, 150); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Verify that the replaced element is in viewer now (i.e. it's not filtered out. TreePath[] replacedElementPaths = fViewer.getElementPaths(replacedElement); @@ -263,7 +264,7 @@ private void doTestRefreshUnrealizedFilteredElement(ViewerFilter[] filters) thro fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Switch out element "201" which is filtered out, with a "replaced element" which should NOT be // filtered out. @@ -271,12 +272,12 @@ private void doTestRefreshUnrealizedFilteredElement(ViewerFilter[] filters) thro model.replaceElementChild(TreePath.EMPTY, 200, replacedElement); fListener.reset(); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Reposition the viewer to make element 100 the top element, making the replaced element visible. fListener.reset(); fViewer.reveal(TreePath.EMPTY, 150); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Verify that the replaced element is in viewer now (i.e. it's not filtered out. TreePath[] replacedElementPaths = fViewer.getElementPaths(replacedElement); @@ -319,7 +320,7 @@ private void doTestRefreshToUnfilterElements(ViewerFilter[] filters) throws Exce fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Turn off filters and refresh. filters1 = new ViewerFilter[0]; @@ -327,7 +328,7 @@ private void doTestRefreshToUnfilterElements(ViewerFilter[] filters) throws Exce fListener.reset(); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, false, filters1); } @@ -344,7 +345,7 @@ public void testPreserveExpandedOnMultLevelContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); StateTests.expandAlternateElements(fListener, model, true); @@ -366,7 +367,7 @@ public void testPreserveExpandedOnMultLevelContent() throws Exception { // Post the refresh delta model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true, filters); @@ -391,7 +392,7 @@ public void testPreserveExpandedOnMultLevelContent() throws Exception { fListener.reset(); fListener.addUpdates(getInternalViewer(), TreePath.EMPTY, model.getRootElement(), filters, -1, ALL_UPDATES_COMPLETE); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true, filters); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java index 29b61433fe7..22f5abecd1c 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/JFaceViewerTopIndexTests.java @@ -16,6 +16,7 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -82,7 +83,7 @@ public void testRestoreTopIndex() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Stop forcing view updates. @@ -106,12 +107,12 @@ public void testRestoreTopIndex() throws Exception { fListener.addStateUpdates(getCTargetViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); // Set the viewer input back to the model to trigger RESTORE operation. fListener.reset(false, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); TestUtil.processUIEvents(); // check if REVEAL was restored OK @@ -157,7 +158,7 @@ public void testRestoreTopAndExpand() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Expand first element @@ -175,7 +176,7 @@ public void testRestoreTopAndExpand() throws Exception { model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Validate that the first node is expanded assertTrue(getCTargetViewer().getExpandedState(firstElemPath)); @@ -199,12 +200,12 @@ public void testRestoreTopAndExpand() throws Exception { fListener.reset(true, false); fListener.addStateUpdates(getCTargetViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); // Set the viewer input back to the model fListener.reset(false, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); TestUtil.processUIEvents(); // check if REVEAL was restored OK @@ -252,7 +253,7 @@ public void testRestoreTopTriggersExpand() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); int indexLastElem = elements.length-1; @@ -281,12 +282,12 @@ public void testRestoreTopTriggersExpand() throws Exception { fListener.addStateUpdates(getCTargetViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); // Set the viewer input back to the model. fListener.reset(false, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); TestUtil.processUIEvents(); // check if REVEAL was restored OK @@ -313,7 +314,7 @@ public void testRestoreRevealAfterRevealCancel() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Stop autopopulating the view. @@ -336,7 +337,7 @@ public void testRestoreRevealAfterRevealCancel() throws Exception { TreePath elementPath = model.findElement("3"); //$NON-NLS-1$ fListener.addUpdates(fViewer, elementPath, model.getElement(elementPath), 1, STATE_UPDATES); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); // Update the viewer with new selection delta to something new in the view ModelDelta revealDelta = model.makeElementDelta(model.findElement("2.1"), IModelDelta.REVEAL); //$NON-NLS-1$ @@ -344,7 +345,7 @@ public void testRestoreRevealAfterRevealCancel() throws Exception { // Wait for the second model delta to process fListener.reset(); model.postDelta(revealDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Clear view then reset it again. fListener.reset(); @@ -355,7 +356,7 @@ public void testRestoreRevealAfterRevealCancel() throws Exception { autopopulateAgent = new TreeModelViewerAutopopulateAgent(getCTargetViewer()); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_RESTORE_COMPLETE), createListenerErrorMessage()); autopopulateAgent.dispose(); } @@ -381,7 +382,7 @@ public void testRestoreRevealAfterRevealCancel2() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Stop auto-populating and auto-expanding the view. @@ -407,7 +408,7 @@ public void testRestoreRevealAfterRevealCancel2() throws Exception { elementPath = model.findElement("3"); //$NON-NLS-1$ fListener.addUpdates(fViewer, elementPath, model.getElement(elementPath), 0, STATE_UPDATES); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_UPDATES), createListenerErrorMessage()); // Update the viewer with new selection delta to something new in the view TreePath pathToBeRevealed = model.findElement("2.1"); //$NON-NLS-1$ @@ -419,7 +420,7 @@ public void testRestoreRevealAfterRevealCancel2() throws Exception { // Wait for the second model delta to process model.postDelta(revealDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILDREN_UPDATES | LABEL_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILDREN_UPDATES | LABEL_UPDATES), createListenerErrorMessage()); // check if REVEAL was triggered by the delta and not by the // state restore operation @@ -450,7 +451,7 @@ public void testRestoreDeepTreeAndReveal() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Stop forcing view updates. @@ -470,13 +471,13 @@ public void testRestoreDeepTreeAndReveal() throws Exception { fListener.reset(true, false); fListener.addStateUpdates(getCTargetViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); // Set the viewer input back to the model fListener.reset(false, false); fListener.addUpdates(getCTargetViewer(), originalTopPath, (TestElement)originalTopPath.getLastSegment(), 0, STATE_UPDATES); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(STATE_UPDATES | CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_UPDATES | CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); TestUtil.processUIEvents(); // check if REVEAL was restored OK @@ -504,7 +505,7 @@ public void testRevealWithContentChanges() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Set top index of view to element "2" and wait for view to repaint. @@ -535,11 +536,11 @@ public void testRevealWithContentChanges() throws Exception { // Wait for the model delta to process model.postDelta(revealDelta); - waitWhile(t -> !fListener.isFinished(CHILD_COUNT_UPDATES_STARTED), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CHILD_COUNT_UPDATES_STARTED), createListenerErrorMessage()); model.setQeueueingUpdate(false); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // check if REVEAL actually revealed the desired element topPath = getCTargetViewer().getTopElementPath(); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java index 2ed7193b8ee..b96cf9bc0e2 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/LazyTests.java @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertEquals; import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer; @@ -75,7 +76,7 @@ public void testExpandLargeSubTree() throws Exception { // Populate initial view content fListener.reset(TreePath.EMPTY, model.getRootElement(), 1, true, true); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Create delta to expand the "1" element. TestElement rootElement = model.getRootElement(); @@ -98,7 +99,7 @@ public void testExpandLargeSubTree() throws Exception { } model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | MODEL_CHANGED_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | MODEL_CHANGED_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); } /** @@ -123,7 +124,7 @@ public void testReplaceAndSelectInSubTreeTree() throws Exception { fListener.setFailOnRedundantUpdates(false); fViewer.setInput(model.getRootElement()); fListener.addLabelUpdate(model.findElement("1.0")); //$NON-NLS-1$ - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_COMPLETE), createListenerErrorMessage()); // Set selection so that the initial selection is not empty fViewer.setSelection(new TreeSelection(new TreePath[] { model.findElement("1.0") })); //$NON-NLS-1$ @@ -148,7 +149,7 @@ public void testReplaceAndSelectInSubTreeTree() throws Exception { fListener.addLabelUpdate(_1_0_newElementPath); model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | LABEL_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | LABEL_COMPLETE), createListenerErrorMessage()); assertEquals(((IStructuredSelection)fViewer.getSelection()).getFirstElement(), _1_0_newElement); @@ -165,7 +166,7 @@ public void testContentRefresh() throws Exception { // Populate initial view content fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, true); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Turn off autoexpand fViewer.setAutoExpandLevel(0); @@ -174,7 +175,7 @@ public void testContentRefresh() throws Exception { fListener.reset(); fListener.setFailOnRedundantUpdates(false); fViewer.reveal(model.findElement("1"), 500); //$NON-NLS-1$ - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Create delta to refresh the "1" element. TestElement rootElement = model.getRootElement(); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java index 0d1a91255f5..c68ed147d7c 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PerformanceTests.java @@ -14,6 +14,8 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; + import org.eclipse.debug.internal.ui.viewers.model.IInternalTreeModelViewer; import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta; import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta; @@ -70,7 +72,7 @@ public void testRefreshStruct() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); Performance perf = Performance.getDefault(); @@ -85,7 +87,7 @@ public void testRefreshStruct() throws Exception { meter.start(); model.postDelta(new ModelDelta(element, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); meter.stop(); System.gc(); } @@ -110,7 +112,7 @@ public void testRefreshStruct2() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); fVirtualItemValidator.setVisibleRange(0, 50); @@ -127,9 +129,9 @@ public void testRefreshStruct2() throws Exception { meter.start(); model.postDelta(new ModelDelta(element, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.postDelta(new ModelDelta(element, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); meter.stop(); System.gc(); } @@ -154,7 +156,7 @@ public void testRefreshStructReplaceElements() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); Performance perf = Performance.getDefault(); @@ -169,7 +171,7 @@ public void testRefreshStructReplaceElements() throws Exception { meter.start(); model.postDelta(new ModelDelta(element, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); meter.stop(); System.gc(); } @@ -195,7 +197,7 @@ public void testRefreshList() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); Performance perf = Performance.getDefault(); @@ -210,7 +212,7 @@ public void testRefreshList() throws Exception { meter.start(); model.postDelta(new ModelDelta(element, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); meter.stop(); System.gc(); } @@ -235,7 +237,7 @@ public void testSaveAndRestore() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Set a selection in view @@ -256,7 +258,7 @@ public void testSaveAndRestore() throws Exception { meter.start(); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); // Set the viewer input back to the model. When view updates are complete // the viewer @@ -264,7 +266,7 @@ public void testSaveAndRestore() throws Exception { fListener.reset(TreePath.EMPTY, model.getRootElement(), 1, false, false); // TODO: add state updates somehow? fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); meter.stop(); System.gc(); } @@ -307,7 +309,7 @@ public boolean select(Viewer viewer, Object parentElement, Object element) { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); Performance perf = Performance.getDefault(); @@ -322,7 +324,7 @@ public boolean select(Viewer viewer, Object parentElement, Object element) { meter.start(); model.postDelta(new ModelDelta(element, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); meter.stop(); System.gc(); } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java index cc4a4cbc21f..c5ed72b6254 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/PopupTests.java @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -76,7 +77,7 @@ public void testRefreshStruct() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -91,7 +92,7 @@ public void testRefreshStruct() throws Exception { fListener.reset(elementPath, element, -1, true, false); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -107,7 +108,7 @@ public void testExpandAndSelect() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Create the delta @@ -131,7 +132,7 @@ public void testExpandAndSelect() throws Exception { model.postDelta(deltaRoot); TestUtil.processUIEvents(); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE) + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE) && (fListener.isFinished(CONTENT_SEQUENCE_STARTED) || !fListener.isFinished(CONTENT_SEQUENCE_STARTED) && !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE)), createListenerErrorMessage()); @@ -163,7 +164,7 @@ public void testPreserveExpandedOnSubTreeContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Turn off auto-expansion @@ -188,7 +189,7 @@ public void testPreserveExpandedOnSubTreeContent() throws Exception { // Post the sub-tree update model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true); diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java index 0a2de1761bc..7d71fc5fbce 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/SelectionTests.java @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -56,7 +57,7 @@ private TestModel makeMultiLevelModel() throws Exception { fViewer.setAutoExpandLevel(-1); fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); return model; } @@ -138,14 +139,14 @@ public boolean contains(ISelection selection, IPresentationContext context) { ModelDelta delta_3_3_3 = model.getElementDelta(baseDelta, path_3_3_3, false); delta_3_3_3.setFlags(IModelDelta.SELECT); fViewer.updateViewer(baseDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); assertEquals(selection_3_3_1, fViewer.getSelection()); // Add the *force* flag to the selection delta and update viewer again. // Verify that selection did change. delta_3_3_3.setFlags(IModelDelta.SELECT | IModelDelta.FORCE); fViewer.updateViewer(baseDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); assertEquals(selection_3_3_3, fViewer.getSelection()); } @@ -183,7 +184,7 @@ public void testSelectRemove() throws Exception { // delta only wait for the delta to be processed. fListener.reset(); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(ITestModelUpdatesListenerConstants.MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ITestModelUpdatesListenerConstants.MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Check to make sure the selection was made //assertTrue(listener.fEvents.size() == 1); @@ -228,7 +229,7 @@ public void testSelectRemoveRefreshStruct() throws Exception { // Refresh the viewer model.postDelta( new ModelDelta(model.getRootElement(), IModelDelta.CONTENT) ); - waitWhile(t -> !fListener.isFinished(ITestModelUpdatesListenerConstants.ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ITestModelUpdatesListenerConstants.ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Check to make sure the selection was made // Commented out until JFace bug 219887 is fixed. diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java index 5e655dcfca4..30447cdc73b 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/StateTests.java @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -65,7 +66,7 @@ public void testUpdateViewer() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Create the update delta @@ -100,7 +101,7 @@ public void testUpdateViewer() throws Exception { fListener.addLabelUpdate(path3); fViewer.updateViewer(updateDelta); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | LABEL_UPDATES), createListenerErrorMessage()); // Extract the new state from viewer ModelDelta savedDelta = new ModelDelta(model.getRootElement(), IModelDelta.NO_CHANGE); @@ -270,7 +271,7 @@ static void expandAlternateElements(TestModelUpdatesListener listener, TestModel } model.postDelta(rootDelta); - TestUtil.waitWhile(t -> !listener.isFinished(CONTENT_SEQUENCE_COMPLETE | MODEL_CHANGED_COMPLETE), null, 30000, t -> "Listener not finished: " + listener); + TestUtil.waitWhile(() -> !listener.isFinished(CONTENT_SEQUENCE_COMPLETE | MODEL_CHANGED_COMPLETE), 30000, () -> "Listener not finished: " + listener); } @Test @@ -285,7 +286,7 @@ public void testPreserveExpandedOnRemove() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); expandAlternateElements(fListener, model, true); @@ -300,7 +301,7 @@ public void testPreserveExpandedOnRemove() throws Exception { // Remove delta should not generate any new updates fListener.reset(); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true); @@ -326,7 +327,7 @@ public void testPreserveExpandedOnInsert() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); expandAlternateElements(fListener, model, true); @@ -344,7 +345,7 @@ public void testPreserveExpandedOnInsert() throws Exception { fListener.reset(path, (TestElement)path.getLastSegment(), 0, false, false); fListener.addChildreUpdate(TreePath.EMPTY, 0); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | ALL_UPDATES_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true); @@ -372,7 +373,7 @@ public void testPreserveExpandedOnMultLevelContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); expandAlternateElements(fListener, model, true); @@ -398,7 +399,7 @@ public void testPreserveExpandedOnMultLevelContent() throws Exception { // Post the multi-content update delta model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true); @@ -429,7 +430,7 @@ public void testKeepCollapsedAfterRemovingAndReaddingChildrenInExpandedTree() th // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); /* @@ -458,7 +459,7 @@ public void testKeepCollapsedAfterRemovingAndReaddingChildrenInExpandedTree() th model.postDelta(rootDelta); - TestUtil.waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), null, 300000, t -> "Listener not finished: " + fListener); + TestUtil.waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), 300000, () -> "Listener not finished: " + fListener); } /* @@ -479,7 +480,7 @@ public void testKeepCollapsedAfterRemovingAndReaddingChildrenInExpandedTree() th model.postDelta(rootDelta); - TestUtil.waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), null, 60000, t -> "Listener not finished: " + fListener); + TestUtil.waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), 60000, () -> "Listener not finished: " + fListener); } /* @@ -509,7 +510,7 @@ public void testKeepCollapsedAfterRemovingAndReaddingChildrenInExpandedTree() th model.postDelta(rootDelta); - TestUtil.waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), null, 60000, t -> "Listener not finished: " + fListener); + TestUtil.waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), 60000, () -> "Listener not finished: " + fListener); } /* @@ -531,7 +532,7 @@ public void testKeepCollapsedAfterRemovingAndReaddingChildrenInExpandedTree() th model.postDelta(rootDelta); - TestUtil.waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), null, 6000000, t -> "Listener not finished: " + fListener); + TestUtil.waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | MODEL_CHANGED_COMPLETE), 6000000, () -> "Listener not finished: " + fListener); } /* @@ -555,7 +556,7 @@ public void testPreserveExpandedOnSubTreeContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Turn off auto-expansion @@ -580,7 +581,7 @@ public void testPreserveExpandedOnSubTreeContent() throws Exception { // Post the sub-tree update model.postDelta(rootDelta); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true); @@ -605,7 +606,7 @@ public void testPreserveExpandedOnContentStress() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); expandAlternateElements(fListener, model, true); @@ -627,7 +628,7 @@ public void testPreserveExpandedOnContentStress() throws Exception { fListener.reset(false, false); fListener.addUpdates(getInternalViewer(), TreePath.EMPTY, model.getRootElement(), -1, ALL_UPDATES_COMPLETE); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true); @@ -647,7 +648,7 @@ public void testPreserveExpandedOnContentStress() throws Exception { fListener.reset(false, false); fListener.addUpdates(getInternalViewer(), TreePath.EMPTY, model.getRootElement(), -1, ALL_UPDATES_COMPLETE); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data model.validateData(fViewer, TreePath.EMPTY, true); @@ -675,7 +676,7 @@ public void testPreserveLargeModelOnContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); expandAlternateElements(fListener, model, false); @@ -690,7 +691,7 @@ public void testPreserveLargeModelOnContent() throws Exception { // Note: Re-expanding nodes causes redundant updates. fListener.reset(false, false); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Validate data assertFalse(getInternalViewer().getExpandedState(model.findElement("2"))); //$NON-NLS-1$ @@ -708,7 +709,7 @@ public void testPreserveLargeModelOnContent() throws Exception { // Note: Re-expanding nodes causes redundant updates. fListener.reset(false, false); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Validate data assertFalse(getInternalViewer().getExpandedState(model.findElement("2"))); //$NON-NLS-1$ @@ -739,7 +740,7 @@ public void testPreserveSelectionDeltaAfterContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Set a selection in view @@ -751,7 +752,7 @@ public void testPreserveSelectionDeltaAfterContent() throws Exception { // Refresh content. // Note: Wait only for the processing of the delta, not for all updates model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Update the viewer with new selection delta to something new in the view ModelDelta selectDelta = model.makeElementDelta(model.findElement("2.1"), IModelDelta.SELECT); //$NON-NLS-1$ @@ -759,11 +760,11 @@ public void testPreserveSelectionDeltaAfterContent() throws Exception { // Wait for the second model delta to process fListener.resetModelChanged(); model.postDelta(selectDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Wait for all the updates to complete (note: we're not resetting the listener. model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Check to make sure that the state restore didn't change the selection. assertEquals(new TreeSelection(model.findElement("2.1")), fViewer.getSelection()); //$NON-NLS-1$ @@ -782,7 +783,7 @@ public void testPreserveCollapseDeltaAfterContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Turn off auto-expand @@ -794,7 +795,7 @@ public void testPreserveCollapseDeltaAfterContent() throws Exception { // Refresh content. // Note: Wait only for the processing of the delta, not for all updates model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Update the viewer to collapse an element ModelDelta collapseDelta = model.makeElementDelta(model.findElement("3.1"), IModelDelta.COLLAPSE); //$NON-NLS-1$ @@ -815,11 +816,11 @@ public void testPreserveCollapseDeltaAfterContent() throws Exception { // Wait for the second model delta to process model.postDelta(collapseDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Wait for all the updates to complete (note: we're not resetting the listener. model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Check to make sure that the state restore didn't change the selection. assertFalse(getInternalViewer().getExpandedState(model.findElement("3.1"))); //$NON-NLS-1$ @@ -837,7 +838,7 @@ public void testPreserveExpandDeltaAfterContent() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Reset the listener (ignore redundant updates) @@ -846,7 +847,7 @@ public void testPreserveExpandDeltaAfterContent() throws Exception { // Refresh content. // Note: Wait only for the processing of the delta, not for all updates model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Update the viewer to expand an element ModelDelta expandDelta = model.makeElementDelta(model.findElement("3.1"), IModelDelta.EXPAND); //$NON-NLS-1$ @@ -854,11 +855,11 @@ public void testPreserveExpandDeltaAfterContent() throws Exception { // Wait for the second model delta to process fListener.resetModelChanged(); model.postDelta(expandDelta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Wait for all the updates to complete (note: we're not resetting the listener. model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Check to make sure that the state restore didn't change the selection. assertTrue(getInternalViewer().getExpandedState(model.findElement("3.1"))); //$NON-NLS-1$ @@ -876,7 +877,7 @@ public void testSaveAndRestore1() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Expand some, but not all elements @@ -893,7 +894,7 @@ public void testSaveAndRestore1() throws Exception { fListener.reset(false, false); fListener.addStateUpdates(getInternalViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); // Set the viewer input back to the model. When view updates are complete // the viewer @@ -901,7 +902,7 @@ public void testSaveAndRestore1() throws Exception { fListener.reset(TreePath.EMPTY, model.getRootElement(), 1, false, false); // TODO: add state updates somehow? fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); // Extract the restored state from viewer ModelDelta restoredState = new ModelDelta(model.getRootElement(), IModelDelta.NO_CHANGE); @@ -925,7 +926,7 @@ public void testSaveAndRestore2() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Set a selection in view @@ -944,7 +945,7 @@ public void testSaveAndRestore2() throws Exception { fListener.addStateUpdates(getInternalViewer(), originalState, IModelDelta.EXPAND | IModelDelta.SELECT | IModelDelta.REVEAL); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); // Set the viewer input back to the model. When view updates are complete // the viewer @@ -952,7 +953,7 @@ public void testSaveAndRestore2() throws Exception { fListener.reset(TreePath.EMPTY, model.getRootElement(), 1, false, false); // TODO: add state updates somehow? fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); // Extract the restored state from viewer ModelDelta restoredState = new ModelDelta(model.getRootElement(), IModelDelta.NO_CHANGE); @@ -975,7 +976,7 @@ public void testSaveAndRestoreInputInstance() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Expand some, but not all elements @@ -995,7 +996,7 @@ public void testSaveAndRestoreInputInstance() throws Exception { // Note: disable redundant updates because the reveal delta triggers one. fListener.reset(TreePath.EMPTY, model.getRootElement(), 1, false, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); // Extract the restored state from viewer ModelDelta restoredState = new ModelDelta(model.getRootElement(), IModelDelta.NO_CHANGE); @@ -1018,7 +1019,7 @@ public void testSaveAndRestoreInputInstanceEquals() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // Expand some, but not all elements @@ -1041,7 +1042,7 @@ public void testSaveAndRestoreInputInstanceEquals() throws Exception { fListener.reset(TreePath.EMPTY, model.getRootElement(), 1, false, false); fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); // Extract the restored state from viewer ModelDelta restoredState = new ModelDelta(model.getRootElement(), IModelDelta.NO_CHANGE); @@ -1065,7 +1066,7 @@ public void testSaveAndRestoreLarge() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); expandAlternateElements(fListener, model, false); @@ -1084,7 +1085,7 @@ public void testSaveAndRestoreLarge() throws Exception { fViewer.setInput(null); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); // Set the viewer input back to the model. When view updates are complete // the viewer @@ -1092,7 +1093,7 @@ public void testSaveAndRestoreLarge() throws Exception { fListener.reset(); fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); // Validate data (only select visible elements). assertTrue(getInternalViewer().getExpandedState(model.findElement("1"))); //$NON-NLS-1$ @@ -1125,7 +1126,7 @@ public void testSaveAndRestorePartialStateLarge() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE), createListenerErrorMessage()); expandAlternateElements(fListener, model, false); @@ -1144,7 +1145,7 @@ public void testSaveAndRestorePartialStateLarge() throws Exception { fViewer.setInput(null); TestUtil.waitForJobs(name.getMethodName(), 300, 5000); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE | STATE_UPDATES), createListenerErrorMessage()); TestElement[] elements = model.getRootElement().getChildren(); @@ -1160,7 +1161,7 @@ public void testSaveAndRestorePartialStateLarge() throws Exception { TestUtil.waitForJobs(name.getMethodName(), 300, 5000); // MONITOR FOR THE STATE RESTORE TO COMPLETE - waitWhile(t -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_SEQUENCE_COMPLETE | STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Validate data assertTrue(getInternalViewer().getExpandedState(model.findElement("1"))); //$NON-NLS-1$ @@ -1188,7 +1189,7 @@ public void testPreserveCollapseAndSelectDeltaAfterSaveAndRestore() throws Excep // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); fViewer.setSelection(new TreeSelection(model.findElement("3"))); //$NON-NLS-1$ @@ -1199,7 +1200,7 @@ public void testPreserveCollapseAndSelectDeltaAfterSaveAndRestore() throws Excep // Set the viewer input to null. This will trigger the view to save the viewer state. fListener.reset(false, false); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_SAVE_COMPLETE), createListenerErrorMessage()); // Set the viewer input back to the model. When view updates are complete // the viewer @@ -1214,24 +1215,24 @@ public void testPreserveCollapseAndSelectDeltaAfterSaveAndRestore() throws Excep // Wait till we restore state of elements we want to collapse and select // Bug 372619 - Need to wait until proxy installed delta is processed before // posting the next delta. - waitWhile(t -> !fListener.isFinished(STATE_RESTORE_STARTED | STATE_UPDATES | CHILDREN_UPDATES | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_RESTORE_STARTED | STATE_UPDATES | CHILDREN_UPDATES | MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Post first collapse delta fListener.resetModelChanged(); model.postDelta(model.makeElementDelta(model.findElement("2"), IModelDelta.COLLAPSE)); //$NON-NLS-1$ - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Post second collapse delta fListener.resetModelChanged(); model.postDelta(model.makeElementDelta(model.findElement("3"), IModelDelta.COLLAPSE)); //$NON-NLS-1$ - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Post select delta model.postDelta(model.makeElementDelta(model.findElement("1"), IModelDelta.SELECT)); //$NON-NLS-1$ - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); // Wait for all the updates to complete (note: we're not resetting the listener). - waitWhile(t -> !fListener.isFinished(STATE_RESTORE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_RESTORE_COMPLETE), createListenerErrorMessage()); // Check to make sure that the state restore didn't change the selection. assertFalse(getInternalViewer().getExpandedState(model.findElement("2"))); //$NON-NLS-1$ @@ -1258,7 +1259,7 @@ public void testSaveRestoreOrder() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY, true); // a new similar model @@ -1268,7 +1269,7 @@ public void testSaveRestoreOrder() throws Exception { fListener.reset(); fListener.expectRestoreAfterSaveComplete(); fViewer.setInput(copyModel.getRootElement()); - waitWhile(t -> !fListener.isFinished(STATE_RESTORE_STARTED), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(STATE_RESTORE_STARTED), createListenerErrorMessage()); assertTrue("RESTORE started before SAVE to complete", fListener.isFinished(STATE_SAVE_COMPLETE)); //$NON-NLS-1$ } @@ -1286,7 +1287,7 @@ public void testUpdateWithNullInput() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); ModelDelta expandedState = new ModelDelta(model.getRootElement(), IModelDelta.NO_CHANGE); @@ -1298,12 +1299,12 @@ public void testUpdateWithNullInput() throws Exception { model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait for the delta to be processed. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES), createListenerErrorMessage()); fViewer.setInput(null); fViewer.updateViewer(expandedState); - waitWhile(t -> !fListener.isFinished(CONTENT_COMPLETE | VIEWER_UPDATES_RUNNING), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_COMPLETE | VIEWER_UPDATES_RUNNING), createListenerErrorMessage()); } } diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java index 289699500c1..be41de2194b 100644 --- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java +++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/UpdateTests.java @@ -14,6 +14,8 @@ *******************************************************************************/ package org.eclipse.debug.tests.viewer.model; +import static org.eclipse.debug.tests.TestUtil.waitWhile; + import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; @@ -58,7 +60,7 @@ public void testRemoveElements() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -78,7 +80,7 @@ public void testRemoveElements() throws Exception { fListener.reset(rootPath, root, -1, false, false); model.postDelta(new ModelDelta(root, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -96,7 +98,7 @@ public void testAddNewChildren() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -118,7 +120,7 @@ public void testAddNewChildren() throws Exception { // Refresh the viewer model.postDelta(new ModelDelta(rootElement, IModelDelta.CONTENT)); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -130,7 +132,7 @@ private void removeElement(TestModel model, int index, boolean validate) throws // be processed. fListener.reset(); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); if (validate) { model.validateData(fViewer, TreePath.EMPTY); @@ -146,10 +148,10 @@ private void addElement(TestModel model, String label, int position, boolean val model.postDelta(delta); if (validate) { - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } else { - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); } } @@ -162,10 +164,10 @@ private void insertElement(TestModel model, String label, int position, boolean model.postDelta(delta); if (validate) { - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } else { - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); } } @@ -181,7 +183,7 @@ public void testRepeatedAddRemoveElement() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Update the model @@ -210,7 +212,7 @@ public void testNotifyUpdatesTartedOnModelChanged() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Refresh the viewer so that updates are generated. @@ -218,7 +220,7 @@ public void testNotifyUpdatesTartedOnModelChanged() throws Exception { model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait for the delta to be processed. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); Assert.assertTrue( fListener.isFinished(CONTENT_SEQUENCE_STARTED) ); } @@ -240,7 +242,7 @@ public void testContentPlusAddRemoveUpdateRaceConditionsElement() throws Excepti // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Create a listener to listen only to a children count update for the root. @@ -254,7 +256,7 @@ public void testContentPlusAddRemoveUpdateRaceConditionsElement() throws Excepti childrenCountUpdateListener.addChildreCountUpdate(TreePath.EMPTY); model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait until the delta is processed - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); removeElement(model, 5, false); removeElement(model, 4, false); @@ -265,7 +267,7 @@ public void testContentPlusAddRemoveUpdateRaceConditionsElement() throws Excepti // Wait until the children count update is completed using the count from // before elements were removed. - waitWhile(t -> !childrenCountUpdateListener.isFinished(CHILD_COUNT_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !childrenCountUpdateListener.isFinished(CHILD_COUNT_UPDATES), createListenerErrorMessage()); insertElement(model, "1 - " + pass, 0, false); //$NON-NLS-1$ insertElement(model, "2 - " + pass, 1, false); //$NON-NLS-1$ @@ -274,7 +276,7 @@ public void testContentPlusAddRemoveUpdateRaceConditionsElement() throws Excepti insertElement(model, "5 - " + pass, 4, false); //$NON-NLS-1$ insertElement(model, "6 - " + pass, 5, false); //$NON-NLS-1$ - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -299,7 +301,7 @@ public void testInsertAtInvalidIndex() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Insert element at the end of the list. @@ -319,7 +321,7 @@ public void testInsertAtInvalidIndex() throws Exception { fListener.reset(); model.postDelta(delta); - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CONTENT_SEQUENCE_COMPLETE | LABEL_SEQUENCE_COMPLETE), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); } @@ -337,7 +339,7 @@ public void testRescheduleUpdates() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); for (int i = 0; i < 5; i++) { @@ -348,7 +350,7 @@ public void testRescheduleUpdates() throws Exception { model.postDelta(new ModelDelta(rootElement, IModelDelta.CONTENT)); // Wait for the delta to be processed. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES | CHILDREN_UPDATES_STARTED), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES | CHILDREN_UPDATES_STARTED), createListenerErrorMessage()); // Update the model removeElement(model, 0, true); @@ -373,7 +375,7 @@ public void testCanceledUpdates1() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -385,12 +387,12 @@ public void testCanceledUpdates1() throws Exception { model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait for the delta to be processed. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES_STARTED), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES_STARTED), createListenerErrorMessage()); } model.setQeueueingUpdate(false); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); } @@ -411,7 +413,7 @@ public void testCanceledUpdates2() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -423,7 +425,7 @@ public void testCanceledUpdates2() throws Exception { model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait for the delta to be processed. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES_STARTED), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES_STARTED), createListenerErrorMessage()); } @@ -434,7 +436,7 @@ public void testCanceledUpdates2() throws Exception { } model.setQeueueingUpdate(false); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); } /** @@ -454,7 +456,7 @@ public void testCanceledUpdates3() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -476,7 +478,7 @@ public void testCanceledUpdates3() throws Exception { } model.setQeueueingUpdate(false); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); } @@ -497,7 +499,7 @@ public void testCanceledUpdates4() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); @@ -526,7 +528,7 @@ public void testCanceledUpdates4() throws Exception { } model.setQeueueingUpdate(false); - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); } /** @@ -546,7 +548,7 @@ public void testCancelUpdatesOnRemoveElementWhileUpdatingSubTree() throws Except // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); // Refresh the viewer so that updates are generated. @@ -557,13 +559,13 @@ public void testCancelUpdatesOnRemoveElementWhileUpdatingSubTree() throws Except model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait for the delta to be processed and child updates for "2" to get started. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES | CHILDREN_UPDATES_RUNNING), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES | CHILDREN_UPDATES_RUNNING), createListenerErrorMessage()); // Remove element "2" removeElement(model, 1, true); // Wait for all updates to finish. - waitWhile(t -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(ALL_UPDATES_COMPLETE), createListenerErrorMessage()); } /** @@ -583,7 +585,7 @@ public void testCanceledUpdatesOnSetInput() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); model.setQeueueingUpdate(false); @@ -594,13 +596,13 @@ public void testCanceledUpdatesOnSetInput() throws Exception { model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait for the delta to be processed. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES), createListenerErrorMessage()); TestModel model2 = new TestModel(); model2.setRoot(new TestElement(model2, "root", new TestElement[0])); //$NON-NLS-1$ fViewer.setInput(model2.getRootElement()); - waitWhile(t -> !fListener.isFinished(CONTENT_COMPLETE | VIEWER_UPDATES_RUNNING), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_COMPLETE | VIEWER_UPDATES_RUNNING), createListenerErrorMessage()); } @@ -621,7 +623,7 @@ public void testCanceledUpdatesOnSetNullInput() throws Exception { // Set the input into the view and update the view. fViewer.setInput(model.getRootElement()); - waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(), createListenerErrorMessage()); model.validateData(fViewer, TreePath.EMPTY); model.setQeueueingUpdate(false); @@ -632,11 +634,11 @@ public void testCanceledUpdatesOnSetNullInput() throws Exception { model.postDelta(new ModelDelta(model.getRootElement(), IModelDelta.CONTENT)); // Wait for the delta to be processed. - waitWhile(t -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(MODEL_CHANGED_COMPLETE | CHILD_COUNT_UPDATES), createListenerErrorMessage()); fViewer.setInput(null); - waitWhile(t -> !fListener.isFinished(CONTENT_COMPLETE | VIEWER_UPDATES_RUNNING), createListenerErrorMessage()); + waitWhile(() -> !fListener.isFinished(CONTENT_COMPLETE | VIEWER_UPDATES_RUNNING), createListenerErrorMessage()); }