From cacf1e0c6cda4e42fe6581946cad53a377c71ec7 Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Wed, 26 Feb 2020 11:52:03 +0100 Subject: Port some of the core tests from the previous model --- plugins/base/src/test/kotlin/model/JavaTest.kt | 367 +++++++++++++++++++++++++ 1 file changed, 367 insertions(+) create mode 100644 plugins/base/src/test/kotlin/model/JavaTest.kt (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt new file mode 100644 index 00000000..ea454763 --- /dev/null +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -0,0 +1,367 @@ +package model + +import org.jetbrains.dokka.model.* +import org.jetbrains.dokka.model.Enum +import org.jetbrains.dokka.model.Function +import org.junit.Assert.assertTrue +import org.junit.Test +import utils.AbstractModelTest +import utils.assertNotNull + +class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { + + @Test //todo params in comments + fun function() { + inlineModelTest( + """ + |class Test { + | /** + | * Summary for Function + | * @param name is String parameter + | * @param value is int parameter + | */ + | public void fn(String name, int value) {} + |} + """ + ) { + with((this / "java" / "Test").cast()) { + name equals "Test" + children counts 1 + with((this / "fn").cast()) { + name equals "fn" + this + } + } + } + } + + //@Test fun function() { + // verifyJavaPackageMember("testdata/java/member.java", defaultModelConfig) { cls -> + // assertEquals("Test", cls.name) + // assertEquals(NodeKind.Class, cls.kind) + // with(cls.members(NodeKind.Function).single()) { + // assertEquals("fn", name) + // assertEquals("Summary for Function", content.summary.toTestString().trimEnd()) + // assertEquals(3, content.sections.size) + // with(content.sections[0]) { + // assertEquals("Parameters", tag) + // assertEquals("name", subjectName) + // assertEquals("render(Type:String,SUMMARY): is String parameter", toTestString()) + // } + // with(content.sections[1]) { + // assertEquals("Parameters", tag) + // assertEquals("value", subjectName) + // assertEquals("render(Type:Int,SUMMARY): is int parameter", toTestString()) + // } + // assertEquals("Unit", detail(NodeKind.Type).name) + // assertTrue(members.none()) + // assertTrue(links.none()) + // with(details.first { it.name == "name" }) { + // assertEquals(NodeKind.Parameter, kind) + // assertEquals("String", detail(NodeKind.Type).name) + // } + // with(details.first { it.name == "value" }) { + // assertEquals(NodeKind.Parameter, kind) + // assertEquals("Int", detail(NodeKind.Type).name) + // } + // } + // } + // } + + @Test // todo + fun memberWithModifiers() { + inlineModelTest( + """ + |class Test { + | /** + | * Summary for Function + | * @param name is String parameter + | * @param value is int parameter + | */ + | public void fn(String name, int value) {} + |} + """ + ) { + with((this / "java" / "Test" / "fn").cast()) { + this + } + } + } + + // @Test fun memberWithModifiers() { + // verifyJavaPackageMember("testdata/java/memberWithModifiers.java", defaultModelConfig) { cls -> + // val modifiers = cls.details(NodeKind.Modifier).map { it.name } + // assertTrue("abstract" in modifiers) + // with(cls.members.single { it.name == "fn" }) { + // assertEquals("protected", details[0].name) + // } + // with(cls.members.single { it.name == "openFn" }) { + // assertEquals("open", details[1].name) + // } + // } + // } + + @Test + fun superClass() { + inlineModelTest( + """ + |public class Foo extends Exception implements Cloneable {} + """ + ) { + with((this / "java" / "Foo").cast()) { + val sups = listOf("Exception", "Cloneable") + assertTrue( + "Foo must extend ${sups.joinToString(", ")}", + sups.all { s -> supertypes.map.values.flatten().any { it.classNames == s } }) + } + } + } + + @Test + fun arrayType() { + inlineModelTest( + """ + |class Test { + | public String[] arrayToString(int[] data) { + | return null; + | } + |} + """ + ) { + with((this / "java" / "Test").cast()) { + name equals "Test" + children counts 1 + + with((this / "arrayToString").cast()) { + name equals "arrayToString" + type.constructorFqName equals "java.lang.String[]" + with(parameters.firstOrNull().assertNotNull("parameters")) { + name equals "data" + type.constructorFqName equals "int[]" + } + } + } + } + } + + @Test + fun typeParameter() { + inlineModelTest( + """ + |class Foo> { + | public E foo(); + |} + """ + ) { + with((this / "java" / "Foo").cast()) { + this + } + } + } + + // @Test fun typeParameter() { + // verifyJavaPackageMember("testdata/java/typeParameter.java", defaultModelConfig) { cls -> + // val typeParameters = cls.details(NodeKind.TypeParameter) + // with(typeParameters.single()) { + // assertEquals("T", name) + // with(detail(NodeKind.UpperBound)) { + // assertEquals("Comparable", name) + // assertEquals("T", detail(NodeKind.Type).name) + // } + // } + // with(cls.members(NodeKind.Function).single()) { + // val methodTypeParameters = details(NodeKind.TypeParameter) + // with(methodTypeParameters.single()) { + // assertEquals("E", name) + // } + // } + // } + // } + + @Test + fun constructors() { + inlineModelTest( + """ + |class Test { + | public Test() {} + | + | public Test(String s) {} + |} + """ + ) { + with((this / "java" / "Test").cast()) { + name equals "Test" + + constructors counts 2 + constructors.find { it.parameters.isNullOrEmpty() }.assertNotNull("Test()") + + with(constructors.find { it.parameters.isNotEmpty() }.assertNotNull("Test(String)")) { + parameters.firstOrNull()?.type?.constructorFqName equals "java.lang.String" + } + } + } + } + + @Test + fun innerClass() { + inlineModelTest( + """ + |class InnerClass { + | public class D {} + |} + """ + ) { + with((this / "java" / "InnerClass").cast()) { + children counts 1 + with((this / "D").cast()) { + name equals "D" + children counts 0 + } + } + } + } + + @Test + fun varargs() { + inlineModelTest( + """ + |class Foo { + | public void bar(String... x); + |} + """ + ) { + with((this / "java" / "Foo").cast()) { + name equals "Foo" + children counts 1 + + with((this / "bar").cast()) { + name equals "bar" + with(parameters.firstOrNull().assertNotNull("parameter")) { + name equals "x" + type.constructorFqName equals "java.lang.String..." + } + } + } + } + } + + @Test // todo + fun fields() { + inlineModelTest( + """ + |class Test { + | public int i; + | public static final String s; + |} + """ + ) { + with((this / "java" / "Test").cast()) { + children counts 2 + + with((this / "i").cast()) { + getter.assertNotNull("i.get") + setter.assertNotNull("i.set") + } + + with((this / "s").cast()) { + getter.assertNotNull("s.get") + setter.assertNotNull("s.set") + + } + } + } + } + + // @Test fun fields() { + // verifyJavaPackageMember("testdata/java/field.java", defaultModelConfig) { cls -> + // val i = cls.members(NodeKind.Property).single { it.name == "i" } + // assertEquals("Int", i.detail(NodeKind.Type).name) + // assertTrue("var" in i.details(NodeKind.Modifier).map { it.name }) + // + // val s = cls.members(NodeKind.Property).single { it.name == "s" } + // assertEquals("String", s.detail(NodeKind.Type).name) + // assertFalse("var" in s.details(NodeKind.Modifier).map { it.name }) + // assertTrue("static" in s.details(NodeKind.Modifier).map { it.name }) + // } + // } + + // @Test fun staticMethod() { todo + // verifyJavaPackageMember("testdata/java/staticMethod.java", defaultModelConfig) { cls -> + // val m = cls.members(NodeKind.Function).single { it.name == "foo" } + // assertTrue("static" in m.details(NodeKind.Modifier).map { it.name }) + // } + // } + // + // /** + // * `@suppress` not supported in Java! + // * + // * [Proposed tags](https://www.oracle.com/technetwork/java/javase/documentation/proposed-tags-142378.html) + // * Proposed tag `@exclude` for it, but not supported yet + // */ + // @Ignore("@suppress not supported in Java!") @Test fun suppressTag() { + // verifyJavaPackageMember("testdata/java/suppressTag.java", defaultModelConfig) { cls -> + // assertEquals(1, cls.members(NodeKind.Function).size) + // } + // } + // + // @Test fun annotatedAnnotation() { + // verifyJavaPackageMember("testdata/java/annotatedAnnotation.java", defaultModelConfig) { cls -> + // assertEquals(1, cls.annotations.size) + // with(cls.annotations[0]) { + // assertEquals(1, details.count()) + // with(details[0]) { + // assertEquals(NodeKind.Parameter, kind) + // assertEquals(1, details.count()) + // with(details[0]) { + // assertEquals(NodeKind.Value, kind) + // assertEquals("[AnnotationTarget.FIELD, AnnotationTarget.CLASS, AnnotationTarget.FILE, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER]", name) + // } + // } + // } + // } + // } + // + // @Test fun deprecation() { + // verifyJavaPackageMember("testdata/java/deprecation.java", defaultModelConfig) { cls -> + // val fn = cls.members(NodeKind.Function).single() + // assertEquals("This should no longer be used", fn.deprecation!!.content.toTestString()) + // } + // } + // + // @Test fun javaLangObject() { + // verifyJavaPackageMember("testdata/java/javaLangObject.java", defaultModelConfig) { cls -> + // val fn = cls.members(NodeKind.Function).single() + // assertEquals("Any", fn.detail(NodeKind.Type).name) + // } + // } + + @Test + fun enumValues() { + inlineModelTest( + """ + |enum E { + | Foo + |} + """ + ) { + with((this / "java" / "E").cast()) { + name equals "E" + entries counts 1 + + with((this / "Foo").cast()) { + name equals "Foo" + } + } + } + } + + + // todo + // @Test fun inheritorLinks() { + // verifyJavaPackageMember("testdata/java/InheritorLinks.java", defaultModelConfig) { cls -> + // val fooClass = cls.members.single { it.name == "Foo" } + // val inheritors = fooClass.references(RefKind.Inheritor) + // assertEquals(1, inheritors.size) + // } + // } +} \ No newline at end of file -- cgit From 996feefe717ac623daabaadda71b5b9d2bbe1cf1 Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Mon, 16 Mar 2020 14:33:38 +0100 Subject: Rename Documentables to avoid name conflicts --- plugins/base/src/test/kotlin/model/JavaTest.kt | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index ea454763..c2545e7a 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -1,8 +1,8 @@ package model import org.jetbrains.dokka.model.* -import org.jetbrains.dokka.model.Enum -import org.jetbrains.dokka.model.Function +import org.jetbrains.dokka.model.DEnum +import org.jetbrains.dokka.model.DFunction import org.junit.Assert.assertTrue import org.junit.Test import utils.AbstractModelTest @@ -24,10 +24,10 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "Test").cast()) { + with((this / "java" / "Test").cast()) { name equals "Test" children counts 1 - with((this / "fn").cast()) { + with((this / "fn").cast()) { name equals "fn" this } @@ -82,7 +82,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "Test" / "fn").cast()) { + with((this / "java" / "Test" / "fn").cast()) { this } } @@ -108,7 +108,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |public class Foo extends Exception implements Cloneable {} """ ) { - with((this / "java" / "Foo").cast()) { + with((this / "java" / "Foo").cast()) { val sups = listOf("Exception", "Cloneable") assertTrue( "Foo must extend ${sups.joinToString(", ")}", @@ -128,11 +128,11 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "Test").cast()) { + with((this / "java" / "Test").cast()) { name equals "Test" children counts 1 - with((this / "arrayToString").cast()) { + with((this / "arrayToString").cast()) { name equals "arrayToString" type.constructorFqName equals "java.lang.String[]" with(parameters.firstOrNull().assertNotNull("parameters")) { @@ -153,7 +153,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "Foo").cast()) { + with((this / "java" / "Foo").cast()) { this } } @@ -189,7 +189,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "Test").cast()) { + with((this / "java" / "Test").cast()) { name equals "Test" constructors counts 2 @@ -211,9 +211,9 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "InnerClass").cast()) { + with((this / "java" / "InnerClass").cast()) { children counts 1 - with((this / "D").cast()) { + with((this / "D").cast()) { name equals "D" children counts 0 } @@ -230,11 +230,11 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "Foo").cast()) { + with((this / "java" / "Foo").cast()) { name equals "Foo" children counts 1 - with((this / "bar").cast()) { + with((this / "bar").cast()) { name equals "bar" with(parameters.firstOrNull().assertNotNull("parameter")) { name equals "x" @@ -255,15 +255,15 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "Test").cast()) { + with((this / "java" / "Test").cast()) { children counts 2 - with((this / "i").cast()) { + with((this / "i").cast()) { getter.assertNotNull("i.get") setter.assertNotNull("i.set") } - with((this / "s").cast()) { + with((this / "s").cast()) { getter.assertNotNull("s.get") setter.assertNotNull("s.set") @@ -344,11 +344,11 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |} """ ) { - with((this / "java" / "E").cast()) { + with((this / "java" / "E").cast()) { name equals "E" entries counts 1 - with((this / "Foo").cast()) { + with((this / "Foo").cast()) { name equals "Foo" } } -- cgit From fb27b386af878a7cd942e97701b66a0d67f7778c Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Tue, 10 Mar 2020 18:39:19 +0100 Subject: Extract inheritance map --- plugins/base/src/test/kotlin/model/JavaTest.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index c2545e7a..1e33d6fd 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -7,6 +7,7 @@ import org.junit.Assert.assertTrue import org.junit.Test import utils.AbstractModelTest import utils.assertNotNull +import utils.name class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { @@ -134,10 +135,10 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with((this / "arrayToString").cast()) { name equals "arrayToString" - type.constructorFqName equals "java.lang.String[]" + type.name equals "Array" with(parameters.firstOrNull().assertNotNull("parameters")) { name equals "data" - type.constructorFqName equals "int[]" + type.name equals "Array" } } } @@ -196,7 +197,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { constructors.find { it.parameters.isNullOrEmpty() }.assertNotNull("Test()") with(constructors.find { it.parameters.isNotEmpty() }.assertNotNull("Test(String)")) { - parameters.firstOrNull()?.type?.constructorFqName equals "java.lang.String" + parameters.firstOrNull()?.type?.name equals "String" } } } @@ -238,7 +239,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { name equals "bar" with(parameters.firstOrNull().assertNotNull("parameter")) { name equals "x" - type.constructorFqName equals "java.lang.String..." + type.name equals "Array" } } } -- cgit From 4002c4e91cb42ef77e93cac57ac49823629d33da Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Thu, 27 Feb 2020 14:50:27 +0100 Subject: Add expect with generation --- plugins/base/src/test/kotlin/model/JavaTest.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 1e33d6fd..c6d111a4 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -3,8 +3,8 @@ package model import org.jetbrains.dokka.model.* import org.jetbrains.dokka.model.DEnum import org.jetbrains.dokka.model.DFunction -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test import utils.AbstractModelTest import utils.assertNotNull import utils.name @@ -112,8 +112,8 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with((this / "java" / "Foo").cast()) { val sups = listOf("Exception", "Cloneable") assertTrue( - "Foo must extend ${sups.joinToString(", ")}", sups.all { s -> supertypes.map.values.flatten().any { it.classNames == s } }) + "Foo must extend ${sups.joinToString(", ")}" } } } -- cgit From 03329b0eb98b309d208839344052633028e00984 Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Wed, 18 Mar 2020 14:19:54 +0100 Subject: Fix minor bugs and add core tests --- plugins/base/src/test/kotlin/model/JavaTest.kt | 109 +++++++++++++++++++------ 1 file changed, 86 insertions(+), 23 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index c6d111a4..a3fcce42 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -1,8 +1,7 @@ package model +import org.jetbrains.dokka.base.transformers.documentables.InheritorsInfo import org.jetbrains.dokka.model.* -import org.jetbrains.dokka.model.DEnum -import org.jetbrains.dokka.model.DFunction import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import utils.AbstractModelTest @@ -113,7 +112,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { val sups = listOf("Exception", "Cloneable") assertTrue( sups.all { s -> supertypes.map.values.flatten().any { it.classNames == s } }) - "Foo must extend ${sups.joinToString(", ")}" + "Foo must extend ${sups.joinToString(", ")}" } } } @@ -155,7 +154,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { """ ) { with((this / "java" / "Foo").cast()) { - this + throw AssertionError("No type parameters data for class") } } } @@ -286,6 +285,24 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { // } // } + @Test + fun staticMethod() { + inlineModelTest( + """ + |class C { + | public static void foo() {} + |} + """ + ) { + with((this / "java" / "C" / "foo").cast()) { + with(extra[AdditionalModifiers].assertNotNull("AdditionalModifiers")) { + content counts 1 + content.first() equals ExtraModifiers.STATIC + } + } + } + } + // @Test fun staticMethod() { todo // verifyJavaPackageMember("testdata/java/staticMethod.java", defaultModelConfig) { cls -> // val m = cls.members(NodeKind.Function).single { it.name == "foo" } @@ -304,31 +321,53 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { // assertEquals(1, cls.members(NodeKind.Function).size) // } // } - // - // @Test fun annotatedAnnotation() { - // verifyJavaPackageMember("testdata/java/annotatedAnnotation.java", defaultModelConfig) { cls -> - // assertEquals(1, cls.annotations.size) - // with(cls.annotations[0]) { - // assertEquals(1, details.count()) - // with(details[0]) { - // assertEquals(NodeKind.Parameter, kind) - // assertEquals(1, details.count()) - // with(details[0]) { - // assertEquals(NodeKind.Value, kind) - // assertEquals("[AnnotationTarget.FIELD, AnnotationTarget.CLASS, AnnotationTarget.FILE, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER]", name) - // } - // } - // } - // } - // } - // + + @Test + fun annotatedAnnotation() { + inlineModelTest( + """ + |import java.lang.annotation.*; + | + |@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}) + |public @interface Attribute { + | String value() default ""; + |} + """ + ) { + with((this / "java" / "Attribute").cast()) { + with(extra[Annotations].assertNotNull("Annotations")) { + content counts 1 + with(content.first()) { + dri.classNames equals "Target" + params["value"].assertNotNull("value") equals "PsiArrayInitializerMemberValue:{ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}" + } + } + } + } + } + // @Test fun deprecation() { // verifyJavaPackageMember("testdata/java/deprecation.java", defaultModelConfig) { cls -> // val fn = cls.members(NodeKind.Function).single() // assertEquals("This should no longer be used", fn.deprecation!!.content.toTestString()) // } // } - // + + @Test + fun javaLangObject() { + inlineModelTest( + """ + |class Test { + | public Object fn() { return null; } + |} + """ + ) { + with((this / "java" / "Test" / "fn").cast()) { + type.name equals "Any" + } + } + } + // @Test fun javaLangObject() { // verifyJavaPackageMember("testdata/java/javaLangObject.java", defaultModelConfig) { cls -> // val fn = cls.members(NodeKind.Function).single() @@ -356,6 +395,30 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } + @Test + fun inheritorLinks() { + inlineModelTest( + """ + |public class InheritorLinks { + | public static class Foo {} + | + | public static class Bar extends Foo {} + |} + """ + ) { + with((this / "java" / "InheritorLinks").cast()) { + val dri = (this / "Foo").assertNotNull("Foo dri").dri + with((this / "Bar").cast()) { + with(extra[InheritorsInfo].assertNotNull("InheritorsInfo")) { + with(value.map.values.flatten().distinct()) { + this counts 1 + first() equals dri + } + } + } + } + } + } // todo // @Test fun inheritorLinks() { -- cgit From 037a0f6e86648635011f23f367faad5ab8a95437 Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Fri, 20 Mar 2020 03:45:08 +0100 Subject: Fixing incorrect type parameters test for java classes --- plugins/base/src/test/kotlin/model/JavaTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index a3fcce42..9bbfc929 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -154,7 +154,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { """ ) { with((this / "java" / "Foo").cast()) { - throw AssertionError("No type parameters data for class") + generics counts 1 } } } -- cgit From 7201bcfca3b426d741c10d4c05201cb03e9f5d3c Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Fri, 20 Mar 2020 03:35:03 +0100 Subject: Fixing incorrect java supertypes DRIs --- plugins/base/src/test/kotlin/model/JavaTest.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 9bbfc929..2545823b 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -407,8 +407,8 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { """ ) { with((this / "java" / "InheritorLinks").cast()) { - val dri = (this / "Foo").assertNotNull("Foo dri").dri - with((this / "Bar").cast()) { + val dri = (this / "Bar").assertNotNull("Foo dri").dri + with((this / "Foo").cast()) { with(extra[InheritorsInfo].assertNotNull("InheritorsInfo")) { with(value.map.values.flatten().distinct()) { this counts 1 -- cgit From af9d525d75a517a5a7cb39d30fd4b2c9e8b93837 Mon Sep 17 00:00:00 2001 From: Paweł Marks Date: Wed, 25 Mar 2020 15:34:33 +0100 Subject: Fix inproper resolution of annotations --- plugins/base/src/test/kotlin/model/JavaTest.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 2545823b..a0cb68d7 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -336,10 +336,9 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { ) { with((this / "java" / "Attribute").cast()) { with(extra[Annotations].assertNotNull("Annotations")) { - content counts 1 - with(content.first()) { + with(content.single()) { dri.classNames equals "Target" - params["value"].assertNotNull("value") equals "PsiArrayInitializerMemberValue:{ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}" + params["value"].assertNotNull("value") equals "{ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}" } } } -- cgit From 40c3650b2e51d06a10ba204c79ca5c94d390a513 Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Wed, 25 Mar 2020 15:51:51 +0100 Subject: Introduce VoidObject and JavaObject --- plugins/base/src/test/kotlin/model/JavaTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index a0cb68d7..b448bf75 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -362,7 +362,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { """ ) { with((this / "java" / "Test" / "fn").cast()) { - type.name equals "Any" + assertTrue(type is JavaObject) } } } -- cgit From 7a1956409bc68e8b0ddf47dc9983d2d74728fe7d Mon Sep 17 00:00:00 2001 From: Paweł Marks Date: Wed, 25 Mar 2020 15:59:25 +0100 Subject: Fix JavaTest.fileds --- plugins/base/src/test/kotlin/model/JavaTest.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index b448bf75..95185ad3 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -259,14 +259,13 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { children counts 2 with((this / "i").cast()) { - getter.assertNotNull("i.get") - setter.assertNotNull("i.set") + getter equals null + setter equals null } with((this / "s").cast()) { - getter.assertNotNull("s.get") - setter.assertNotNull("s.set") - + getter equals null + setter equals null } } } -- cgit From 83ba2aa4a885bf9ab07ca0402fb8bcf1ca1547ad Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Wed, 8 Apr 2020 12:53:32 +0200 Subject: Fix content tests --- plugins/base/src/test/kotlin/model/JavaTest.kt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 95185ad3..20543c8f 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -3,6 +3,7 @@ package model import org.jetbrains.dokka.base.transformers.documentables.InheritorsInfo import org.jetbrains.dokka.model.* import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import utils.AbstractModelTest import utils.assertNotNull @@ -393,6 +394,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } + @Disabled("reenable after fixing subtypes") @Test fun inheritorLinks() { inlineModelTest( -- cgit From 3f2a790190da4f40ea6d8a976aa1929b2a1b002b Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Tue, 5 May 2020 17:45:12 +0200 Subject: Changing approach from platform-driven to source-set-driven --- plugins/base/src/test/kotlin/model/JavaTest.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 20543c8f..a58b380c 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -112,7 +112,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with((this / "java" / "Foo").cast()) { val sups = listOf("Exception", "Cloneable") assertTrue( - sups.all { s -> supertypes.map.values.flatten().any { it.classNames == s } }) + sups.all { s -> supertypes.values.flatten().any { it.classNames == s } }) "Foo must extend ${sups.joinToString(", ")}" } } @@ -410,7 +410,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { val dri = (this / "Bar").assertNotNull("Foo dri").dri with((this / "Foo").cast()) { with(extra[InheritorsInfo].assertNotNull("InheritorsInfo")) { - with(value.map.values.flatten().distinct()) { + with(value.values.flatten().distinct()) { this counts 1 first() equals dri } -- cgit From 3aeb65472be150a6098f2fac17dbdf0bb2a40013 Mon Sep 17 00:00:00 2001 From: Marcin Aman Date: Thu, 7 May 2020 17:10:10 +0200 Subject: Missing generics on class. Add generics to annotation #834 --- plugins/base/src/test/kotlin/model/JavaTest.kt | 1 - 1 file changed, 1 deletion(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index a58b380c..76924f0f 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -394,7 +394,6 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - @Disabled("reenable after fixing subtypes") @Test fun inheritorLinks() { inlineModelTest( -- cgit From d47d386ad8c0ff4a2c3b9d5b4450a773bdcba2dc Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Mon, 4 May 2020 13:53:10 +0200 Subject: Enhance signature presentation. Support presetnation Java as Kotlin and Kotlin as Java. Refactor annotations creation from PSI/Descriptors. Add proper rendering of annotation signatures in both kotlin syntax and java syntax. Tests for annotations --- plugins/base/src/test/kotlin/model/JavaTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 76924f0f..07af7913 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -338,7 +338,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with(extra[Annotations].assertNotNull("Annotations")) { with(content.single()) { dri.classNames equals "Target" - params["value"].assertNotNull("value") equals "{ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}" +// params["value"].assertNotNull("value") equals "{ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}" } } } -- cgit From 77fa898e8abdc8e74169fa789f2ba0e32d8fa9d7 Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Thu, 21 May 2020 11:29:22 +0200 Subject: Apply request changes --- plugins/base/src/test/kotlin/model/JavaTest.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 07af7913..fd293b5c 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -1,9 +1,9 @@ package model import org.jetbrains.dokka.base.transformers.documentables.InheritorsInfo +import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.* import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import utils.AbstractModelTest import utils.assertNotNull @@ -297,7 +297,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with((this / "java" / "C" / "foo").cast()) { with(extra[AdditionalModifiers].assertNotNull("AdditionalModifiers")) { content counts 1 - content.first() equals ExtraModifiers.STATIC + content.first() equals ExtraModifiers.JavaOnlyModifiers.Static } } } @@ -338,7 +338,11 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with(extra[Annotations].assertNotNull("Annotations")) { with(content.single()) { dri.classNames equals "Target" -// params["value"].assertNotNull("value") equals "{ElementType.FIELD, ElementType.TYPE, ElementType.METHOD}" + (params["value"].assertNotNull("value") as ArrayValue).value equals listOf( + EnumValue("ElementType.FIELD", DRI("java.lang.annotation", "ElementType")), + EnumValue("ElementType.TYPE", DRI("java.lang.annotation", "ElementType")), + EnumValue("ElementType.METHOD", DRI("java.lang.annotation", "ElementType")) + ) } } } -- cgit From dd44b839eac1b7b647e97f2cc73dd96bd054713b Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Thu, 28 May 2020 21:12:50 +0200 Subject: Refactor of Annotations and ExtraModifiers to be platform depedent --- plugins/base/src/test/kotlin/model/JavaTest.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index fd293b5c..8f52fcc8 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -295,9 +295,9 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { """ ) { with((this / "java" / "C" / "foo").cast()) { - with(extra[AdditionalModifiers].assertNotNull("AdditionalModifiers")) { - content counts 1 - content.first() equals ExtraModifiers.JavaOnlyModifiers.Static + with(extra[AdditionalModifiers]!!.content.entries.single().value.assertNotNull("AdditionalModifiers")) { + this counts 1 + first() equals ExtraModifiers.JavaOnlyModifiers.Static } } } @@ -335,8 +335,8 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { """ ) { with((this / "java" / "Attribute").cast()) { - with(extra[Annotations].assertNotNull("Annotations")) { - with(content.single()) { + with(extra[Annotations]!!.content.entries.single().value.assertNotNull("Annotations")) { + with(single()) { dri.classNames equals "Target" (params["value"].assertNotNull("value") as ArrayValue).value equals listOf( EnumValue("ElementType.FIELD", DRI("java.lang.annotation", "ElementType")), -- cgit From 0206be47827e5b072dac3deb9ccc1792ba95b13c Mon Sep 17 00:00:00 2001 From: Marcin Aman Date: Thu, 18 Jun 2020 12:00:46 +0200 Subject: Javadoc classlikes and function pages All implemented interfaces, first attempt at inherited methods --- plugins/base/src/test/kotlin/model/JavaTest.kt | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 8f52fcc8..77fcc666 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -2,16 +2,22 @@ package model import org.jetbrains.dokka.base.transformers.documentables.InheritorsInfo import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.links.sureClassNames import org.jetbrains.dokka.model.* +import org.jetbrains.dokka.model.doc.Param +import org.jetbrains.dokka.model.doc.Text +import org.jetbrains.dokka.pages.dfs +import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import utils.AbstractModelTest import utils.assertNotNull +import utils.docs import utils.name class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { - @Test //todo params in comments + @Test fun function() { inlineModelTest( """ @@ -30,12 +36,27 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { children counts 1 with((this / "fn").cast()) { name equals "fn" - this + val params = parameters.map { it.documentation.values.first().children.first() as Param } + params.mapNotNull { it.root.children.firstIsInstanceOrNull()?.body } equals listOf("is String parameter", "is int parameter") } } } } + @Test fun allImplementedInterfacesInJava() { + inlineModelTest( + """ + |interface Highest { } + |interface Lower extends Highest { } + |class Extendable { } + |class Tested extends Extendable implements Lower { } + """){ + with((this / "java" / "Tested").cast()){ + extra[ImplementedInterfaces]?.interfaces?.map { it.sureClassNames }?.sorted() equals listOf("Highest", "Lower").sorted() + } + } + } + //@Test fun function() { // verifyJavaPackageMember("testdata/java/member.java", defaultModelConfig) { cls -> // assertEquals("Test", cls.name) -- cgit From ded608b8e0c1fcde7b7e3c5089af49b379b7bab3 Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Tue, 23 Jun 2020 13:37:58 +0200 Subject: Fix tests --- plugins/base/src/test/kotlin/model/JavaTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 77fcc666..aefcc642 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -52,7 +52,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { |class Tested extends Extendable implements Lower { } """){ with((this / "java" / "Tested").cast()){ - extra[ImplementedInterfaces]?.interfaces?.map { it.sureClassNames }?.sorted() equals listOf("Highest", "Lower").sorted() + extra[ImplementedInterfaces]?.interfaces?.entries?.single()?.value?.map { it.sureClassNames }?.sorted() equals listOf("Highest", "Lower").sorted() } } } -- cgit From fb9a5abfc24e93b918693f78a8f555da2c5a359f Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Mon, 22 Jun 2020 03:37:15 +0200 Subject: Javadoc briefs update --- plugins/base/src/test/kotlin/model/JavaTest.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index aefcc642..bd7e3b55 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -6,13 +6,10 @@ import org.jetbrains.dokka.links.sureClassNames import org.jetbrains.dokka.model.* import org.jetbrains.dokka.model.doc.Param import org.jetbrains.dokka.model.doc.Text -import org.jetbrains.dokka.pages.dfs -import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import utils.AbstractModelTest import utils.assertNotNull -import utils.docs import utils.name class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { @@ -37,7 +34,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with((this / "fn").cast()) { name equals "fn" val params = parameters.map { it.documentation.values.first().children.first() as Param } - params.mapNotNull { it.root.children.firstIsInstanceOrNull()?.body } equals listOf("is String parameter", "is int parameter") + params.mapNotNull { it.firstChildOfType()?.body } equals listOf("is String parameter", "is int parameter") } } } -- cgit From a16e101fad10d024a84aa36069ec6032fcbaf3e6 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Tue, 30 Jun 2020 08:03:38 +0200 Subject: Implement `AbstractJavadocTemplateMapTest` API --- plugins/base/src/test/kotlin/model/JavaTest.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index bd7e3b55..4cad784b 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -34,7 +34,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with((this / "fn").cast()) { name equals "fn" val params = parameters.map { it.documentation.values.first().children.first() as Param } - params.mapNotNull { it.firstChildOfType()?.body } equals listOf("is String parameter", "is int parameter") + params.mapNotNull { it.firstChildOfTypeOrNull()?.body } equals listOf("is String parameter", "is int parameter") } } } @@ -449,4 +449,4 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { // assertEquals(1, inheritors.size) // } // } -} \ No newline at end of file +} -- cgit From b67f44943bc80dedd70c4a9e120b9c6aec78ca72 Mon Sep 17 00:00:00 2001 From: Marcin Aman Date: Thu, 2 Jul 2020 13:21:00 +0200 Subject: Draft for showing only first level of inheritance --- plugins/base/src/test/kotlin/model/JavaTest.kt | 134 +++---------------------- 1 file changed, 14 insertions(+), 120 deletions(-) (limited to 'plugins/base/src/test/kotlin/model/JavaTest.kt') diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt index 4cad784b..1f042304 100644 --- a/plugins/base/src/test/kotlin/model/JavaTest.kt +++ b/plugins/base/src/test/kotlin/model/JavaTest.kt @@ -54,38 +54,19 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - //@Test fun function() { - // verifyJavaPackageMember("testdata/java/member.java", defaultModelConfig) { cls -> - // assertEquals("Test", cls.name) - // assertEquals(NodeKind.Class, cls.kind) - // with(cls.members(NodeKind.Function).single()) { - // assertEquals("fn", name) - // assertEquals("Summary for Function", content.summary.toTestString().trimEnd()) - // assertEquals(3, content.sections.size) - // with(content.sections[0]) { - // assertEquals("Parameters", tag) - // assertEquals("name", subjectName) - // assertEquals("render(Type:String,SUMMARY): is String parameter", toTestString()) - // } - // with(content.sections[1]) { - // assertEquals("Parameters", tag) - // assertEquals("value", subjectName) - // assertEquals("render(Type:Int,SUMMARY): is int parameter", toTestString()) - // } - // assertEquals("Unit", detail(NodeKind.Type).name) - // assertTrue(members.none()) - // assertTrue(links.none()) - // with(details.first { it.name == "name" }) { - // assertEquals(NodeKind.Parameter, kind) - // assertEquals("String", detail(NodeKind.Type).name) - // } - // with(details.first { it.name == "value" }) { - // assertEquals(NodeKind.Parameter, kind) - // assertEquals("Int", detail(NodeKind.Type).name) - // } - // } - // } - // } + @Test fun multipleClassInheritanceWithInterface() { + inlineModelTest( + """ + |interface Highest { } + |interface Lower extends Highest { } + |class Extendable { } + |class Tested extends Extendable implements Lower { } + """){ + with((this / "java" / "Tested").cast()) { + supertypes.entries.single().value.map { it.dri.sureClassNames to it.kind }.sortedBy { it.first } equals listOf("Extendable" to JavaClassKindTypes.CLASS, "Lower" to JavaClassKindTypes.INTERFACE) + } + } + } @Test // todo fun memberWithModifiers() { @@ -107,19 +88,6 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - // @Test fun memberWithModifiers() { - // verifyJavaPackageMember("testdata/java/memberWithModifiers.java", defaultModelConfig) { cls -> - // val modifiers = cls.details(NodeKind.Modifier).map { it.name } - // assertTrue("abstract" in modifiers) - // with(cls.members.single { it.name == "fn" }) { - // assertEquals("protected", details[0].name) - // } - // with(cls.members.single { it.name == "openFn" }) { - // assertEquals("open", details[1].name) - // } - // } - // } - @Test fun superClass() { inlineModelTest( @@ -130,7 +98,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { with((this / "java" / "Foo").cast()) { val sups = listOf("Exception", "Cloneable") assertTrue( - sups.all { s -> supertypes.values.flatten().any { it.classNames == s } }) + sups.all { s -> supertypes.values.flatten().any { it.dri.classNames == s } }) "Foo must extend ${sups.joinToString(", ")}" } } @@ -178,25 +146,6 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - // @Test fun typeParameter() { - // verifyJavaPackageMember("testdata/java/typeParameter.java", defaultModelConfig) { cls -> - // val typeParameters = cls.details(NodeKind.TypeParameter) - // with(typeParameters.single()) { - // assertEquals("T", name) - // with(detail(NodeKind.UpperBound)) { - // assertEquals("Comparable", name) - // assertEquals("T", detail(NodeKind.Type).name) - // } - // } - // with(cls.members(NodeKind.Function).single()) { - // val methodTypeParameters = details(NodeKind.TypeParameter) - // with(methodTypeParameters.single()) { - // assertEquals("E", name) - // } - // } - // } - // } - @Test fun constructors() { inlineModelTest( @@ -290,19 +239,6 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - // @Test fun fields() { - // verifyJavaPackageMember("testdata/java/field.java", defaultModelConfig) { cls -> - // val i = cls.members(NodeKind.Property).single { it.name == "i" } - // assertEquals("Int", i.detail(NodeKind.Type).name) - // assertTrue("var" in i.details(NodeKind.Modifier).map { it.name }) - // - // val s = cls.members(NodeKind.Property).single { it.name == "s" } - // assertEquals("String", s.detail(NodeKind.Type).name) - // assertFalse("var" in s.details(NodeKind.Modifier).map { it.name }) - // assertTrue("static" in s.details(NodeKind.Modifier).map { it.name }) - // } - // } - @Test fun staticMethod() { inlineModelTest( @@ -321,25 +257,6 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - // @Test fun staticMethod() { todo - // verifyJavaPackageMember("testdata/java/staticMethod.java", defaultModelConfig) { cls -> - // val m = cls.members(NodeKind.Function).single { it.name == "foo" } - // assertTrue("static" in m.details(NodeKind.Modifier).map { it.name }) - // } - // } - // - // /** - // * `@suppress` not supported in Java! - // * - // * [Proposed tags](https://www.oracle.com/technetwork/java/javase/documentation/proposed-tags-142378.html) - // * Proposed tag `@exclude` for it, but not supported yet - // */ - // @Ignore("@suppress not supported in Java!") @Test fun suppressTag() { - // verifyJavaPackageMember("testdata/java/suppressTag.java", defaultModelConfig) { cls -> - // assertEquals(1, cls.members(NodeKind.Function).size) - // } - // } - @Test fun annotatedAnnotation() { inlineModelTest( @@ -367,13 +284,6 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - // @Test fun deprecation() { - // verifyJavaPackageMember("testdata/java/deprecation.java", defaultModelConfig) { cls -> - // val fn = cls.members(NodeKind.Function).single() - // assertEquals("This should no longer be used", fn.deprecation!!.content.toTestString()) - // } - // } - @Test fun javaLangObject() { inlineModelTest( @@ -389,13 +299,6 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } - // @Test fun javaLangObject() { - // verifyJavaPackageMember("testdata/java/javaLangObject.java", defaultModelConfig) { cls -> - // val fn = cls.members(NodeKind.Function).single() - // assertEquals("Any", fn.detail(NodeKind.Type).name) - // } - // } - @Test fun enumValues() { inlineModelTest( @@ -440,13 +343,4 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") { } } } - - // todo - // @Test fun inheritorLinks() { - // verifyJavaPackageMember("testdata/java/InheritorLinks.java", defaultModelConfig) { cls -> - // val fooClass = cls.members.single { it.name == "Foo" } - // val inheritors = fooClass.references(RefKind.Inheritor) - // assertEquals(1, inheritors.size) - // } - // } } -- cgit