aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
index 452b39bfd6..4bca09cae3 100644
--- a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
+++ b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
@@ -279,6 +279,71 @@ public class SkylarkDocumentationTest extends SkylarkTestCase {
}
}
+ /** MockClassCommonNameOne */
+ @SkylarkModule(name = "MockClassCommonName",
+ doc = "MockClassCommonName")
+ private static class MockClassCommonNameOne {
+
+ @SkylarkCallable(name = "one", doc = "one")
+ public Integer one() {
+ return 1;
+ }
+ }
+
+ /** SubclassOfMockClassCommonNameOne */
+ @SkylarkModule(name = "MockClassCommonName",
+ doc = "MockClassCommonName")
+ private static class SubclassOfMockClassCommonNameOne extends MockClassCommonNameOne {
+
+ @SkylarkCallable(name = "two", doc = "two")
+ public Integer two() {
+ return 1;
+ }
+ }
+
+ /** PointsToCommonNameOneWithSubclass */
+ @SkylarkModule(name = "PointsToCommonNameOneWithSubclass",
+ doc = "PointsToCommonNameOneWithSubclass")
+ private static class PointsToCommonNameOneWithSubclass {
+ @SkylarkCallable(name = "one", doc = "one")
+ public MockClassCommonNameOne getOne() {
+ return null;
+ }
+
+ @SkylarkCallable(name = "one_subclass", doc = "one_subclass")
+ public SubclassOfMockClassCommonNameOne getOneSubclass() {
+ return null;
+ }
+ }
+
+ /** MockClassCommonNameOneUndocumented */
+ @SkylarkModule(name = "MockClassCommonName",
+ documented = false,
+ doc = "")
+ private static class MockClassCommonNameUndocumented {
+
+ @SkylarkCallable(name = "two", doc = "two")
+ public Integer two() {
+ return 1;
+ }
+ }
+
+ /** PointsToCommonNameAndUndocumentedModule */
+ @SkylarkModule(name = "PointsToCommonNameAndUndocumentedModule",
+ doc = "PointsToCommonNameAndUndocumentedModule")
+ private static class PointsToCommonNameAndUndocumentedModule {
+ @SkylarkCallable(name = "one", doc = "one")
+ public MockClassCommonNameOne getOne() {
+ return null;
+ }
+
+ @SkylarkCallable(name = "undocumented_module", doc = "undocumented_module")
+ public MockClassCommonNameUndocumented getUndocumented() {
+ return null;
+ }
+ }
+
+
@Test
public void testSkylarkJavaInterfaceExplorerOnSimpleClass() throws Exception {
Map<String, SkylarkModuleDoc> objects = collect(MockClassA.class);
@@ -439,6 +504,26 @@ public class SkylarkDocumentationTest extends SkylarkTestCase {
+ "MockClassWithContainerReturnValues.skylark()");
}
+ @Test
+ public void testDocumentedModuleTakesPrecedence() throws Exception {
+ Map<String, SkylarkModuleDoc> objects = collect(PointsToCommonNameAndUndocumentedModule.class);
+ Collection<SkylarkMethodDoc> methods =
+ objects.get("MockClassCommonName").getMethods();
+ List<String> methodNames =
+ methods.stream().map(m -> m.getName()).collect(Collectors.toList());
+ assertThat(methodNames).containsExactly("one");
+ }
+
+ @Test
+ public void testDocumentModuleSubclass() {
+ Map<String, SkylarkModuleDoc> objects = collect(PointsToCommonNameOneWithSubclass.class);
+ Collection<SkylarkMethodDoc> methods =
+ objects.get("MockClassCommonName").getMethods();
+ List<String> methodNames =
+ methods.stream().map(m -> m.getName()).collect(Collectors.toList());
+ assertThat(methodNames).containsExactly("one", "two");
+ }
+
private Iterable<Method> extractMethods(Collection<SkylarkMethodDoc> methods) {
return methods.stream()
.filter(methodDoc -> methodDoc instanceof SkylarkJavaMethodDoc)