532030: Junit4TestFixtureRunner: sort the fixtues by Info

Change-Id: Id1b7945ed8222d37755a455ff2a4dedfe6f91531
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=532030
Signed-off-by: Frank Becker <eclipse@frank-becker.de>
diff --git a/org.eclipse.mylyn.commons.sdk.util/src/org/eclipse/mylyn/commons/sdk/util/Junit4TestFixtureRunner.java b/org.eclipse.mylyn.commons.sdk.util/src/org/eclipse/mylyn/commons/sdk/util/Junit4TestFixtureRunner.java
index b4acff7..c76e0f0 100644
--- a/org.eclipse.mylyn.commons.sdk.util/src/org/eclipse/mylyn/commons/sdk/util/Junit4TestFixtureRunner.java
+++ b/org.eclipse.mylyn.commons.sdk.util/src/org/eclipse/mylyn/commons/sdk/util/Junit4TestFixtureRunner.java
@@ -18,6 +18,7 @@
 import java.lang.annotation.Target;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 import org.eclipse.core.runtime.IStatus;
@@ -188,9 +189,17 @@
 			TestConfiguration defFixture = TestConfiguration.getDefault();
 			List<AbstractTestFixture> parametersList = (List<AbstractTestFixture>) defFixture.discover(fixtureClass,
 					fixtureType);
+			ArrayList<AbstractTestFixture> sortedParametersList = new ArrayList<AbstractTestFixture>(parametersList);
+			sortedParametersList.sort(new Comparator<AbstractTestFixture>() {
+
+				@Override
+				public int compare(AbstractTestFixture o1, AbstractTestFixture o2) {
+					return o1.getInfo().compareTo(o2.getInfo());
+				}
+			});
 			List<AbstractTestFixture> fixturesToExecute = new ArrayList<AbstractTestFixture>();
 			if (restrictProperty != null) {
-				for (AbstractTestFixture abstractFixture : parametersList) {
+				for (AbstractTestFixture abstractFixture : sortedParametersList) {
 					String tempProperty = abstractFixture.getProperty(restrictProperty);
 					if (tempProperty != null && tempProperty.equals(restrictValue)) {
 						fixturesToExecute.add(abstractFixture);
@@ -201,9 +210,9 @@
 						runners.add(new TestClassRunnerForFixture(getTestClass().getJavaClass(), fixturesToExecute, i));
 					}
 				}
-			} else if (parametersList.size() > 0) {
-				for (int i = 0; i < parametersList.size(); i++) {
-					runners.add(new TestClassRunnerForFixture(getTestClass().getJavaClass(), parametersList, i));
+			} else if (sortedParametersList.size() > 0) {
+				for (int i = 0; i < sortedParametersList.size(); i++) {
+					runners.add(new TestClassRunnerForFixture(getTestClass().getJavaClass(), sortedParametersList, i));
 				}
 			}
 		} else {