Add test for classes from ClassPath

Bug: 299048934
Test: ./gradlew
Change-Id: Ie9f8c0e326058747dbb9f51af3467223fd3cc8cf
diff --git a/metalava-model-testsuite/src/main/java/com/android/tools/metalava/model/testsuite/BootstrapSourceModelProviderTest.kt b/metalava-model-testsuite/src/main/java/com/android/tools/metalava/model/testsuite/BootstrapSourceModelProviderTest.kt
index a7c445c..c2248a8 100644
--- a/metalava-model-testsuite/src/main/java/com/android/tools/metalava/model/testsuite/BootstrapSourceModelProviderTest.kt
+++ b/metalava-model-testsuite/src/main/java/com/android/tools/metalava/model/testsuite/BootstrapSourceModelProviderTest.kt
@@ -282,4 +282,33 @@
             assertEquals(true, fieldMod3.isPackagePrivate())
         }
     }
+
+    @Test
+    /**
+     * Check for the following:
+     * 1) If a class from classpath is needed by some source class, the corresponding classItem is
+     *    created
+     * 2) While classpath may contain a lot of classes , only create classItems for the classes
+     *    required by source classes directly or indirectly (e.g. superclass of superclass)
+     */
+    fun `130 - check classes from classpath`() {
+        runSourceCodebaseTest(
+            java(
+                """
+                    package test.pkg;
+
+                    import java.util.Date;
+
+                    class Test extends Date{}
+                """
+            ),
+        ) { codebase ->
+            val classItem = codebase.assertClass("test.pkg.Test")
+            val utilClassItem = codebase.assertClass("java.util.Date")
+            val objectClassItem = codebase.assertClass("java.lang.Object")
+            assertEquals(utilClassItem, classItem.superClass())
+            assertEquals(objectClassItem, utilClassItem.superClass())
+            assertEquals(3, utilClassItem.allInterfaces().count())
+        }
+    }
 }
diff --git a/metalava-model-turbine/src/test/resources/model-test-suite-baseline.txt b/metalava-model-turbine/src/test/resources/model-test-suite-baseline.txt
index 96fd4e5..964fb23 100644
--- a/metalava-model-turbine/src/test/resources/model-test-suite-baseline.txt
+++ b/metalava-model-turbine/src/test/resources/model-test-suite-baseline.txt
@@ -1,6 +1,7 @@
 com.android.tools.metalava.model.testsuite.BootstrapSourceModelProviderTest
   060 - check method exists[turbine,java]
   070 - check constructor exists[turbine,java]
+  130 - check classes from classpath[turbine,java]
 
 com.android.tools.metalava.model.testsuite.CommonClassItemTest
   Find method with type parameterized by two types[turbine,java]