Run UICD tests in alphabetical order

Bug: 183750569
Test: UiConductorTestTest.java
Change-Id: I846841f122599c57f24ea391fa10ced4653f1a77
diff --git a/src/com/android/uicd/tests/UiConductorTest.java b/src/com/android/uicd/tests/UiConductorTest.java
index 235fa43..6ac8937 100644
--- a/src/com/android/uicd/tests/UiConductorTest.java
+++ b/src/com/android/uicd/tests/UiConductorTest.java
@@ -391,6 +391,7 @@
                 Path dirPath = file.toPath().toAbsolutePath();
                 return Files.walk(dirPath)
                         .filter(Files::isRegularFile)
+                        .sorted()
                         .map(
                                 filePath -> {
                                     String id = dirPath.getParent().relativize(filePath).toString();
diff --git a/tests/src/com/android/uicd/tests/UiConductorTestTest.java b/tests/src/com/android/uicd/tests/UiConductorTestTest.java
index 1e8d1c0..a9e91f6 100644
--- a/tests/src/com/android/uicd/tests/UiConductorTestTest.java
+++ b/tests/src/com/android/uicd/tests/UiConductorTestTest.java
@@ -32,6 +32,7 @@
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.clearInvocations;
+import static org.mockito.Mockito.inOrder;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -60,6 +61,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
+import org.mockito.InOrder;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -204,19 +206,28 @@
 
     @Test
     public void testRun_testDirectory() throws Exception {
-        // Create directory with two test files (test1.json, nested_dir/test2.json)
+        // Create directory with four test files (test[1-3].json, nested_dir/test.json)
         Path testDir = mInputDir.resolve("test_dir");
         Files.createDirectories(testDir.resolve("nested_dir"));
         Files.createFile(testDir.resolve("test1.json"));
-        Files.createFile(testDir.resolve("nested_dir/test2.json"));
+        Files.createFile(testDir.resolve("test2.json"));
+        Files.createFile(testDir.resolve("test3.json"));
+        Files.createFile(testDir.resolve("nested_dir/test.json"));
         mOptionSetter.setOptionValue("uicd-test", TEST_KEY, testDir.toString());
-        // Three tests executed (including test.json) and their name includes the relative path
+
+        // Five tests executed (including test.json)
         mTest.run(mTestInfo, mListener);
-        verify(mListener, times(3)).testStarted(any(), anyLong());
+        verify(mListener, times(5)).testStarted(any(), anyLong());
+        // Tests are executed in alphabetical order and their name includes the relative path
+        InOrder order = inOrder(mListener);
+        TestDescription nested = new TestDescription(MODULE_NAME, "test_dir/nested_dir/test.json");
+        order.verify(mListener).testStarted(eq(nested), anyLong());
         TestDescription test1 = new TestDescription(MODULE_NAME, "test_dir/test1.json");
-        verify(mListener).testStarted(eq(test1), anyLong());
-        TestDescription test2 = new TestDescription(MODULE_NAME, "test_dir/nested_dir/test2.json");
-        verify(mListener).testStarted(eq(test2), anyLong());
+        order.verify(mListener).testStarted(eq(test1), anyLong());
+        TestDescription test2 = new TestDescription(MODULE_NAME, "test_dir/test2.json");
+        order.verify(mListener).testStarted(eq(test2), anyLong());
+        TestDescription test3 = new TestDescription(MODULE_NAME, "test_dir/test3.json");
+        order.verify(mListener).testStarted(eq(test3), anyLong());
     }
 
     @Test