From b511259a37aa9feee06a3ca92b7967552aa34104 Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Fri, 11 Jul 2014 22:09:41 +0400 Subject: Support type parameters for functions and classes. --- test/data/classes/genericClass.kt | 3 +++ test/data/functions/genericFunction.kt | 5 +++++ test/playground.kt | 1 + test/src/model/ClassTest.kt | 22 ++++++++++++++++++++++ test/src/model/FunctionTest.kt | 22 ++++++++++++++++++++++ 5 files changed, 53 insertions(+) create mode 100644 test/data/classes/genericClass.kt create mode 100644 test/data/functions/genericFunction.kt (limited to 'test') diff --git a/test/data/classes/genericClass.kt b/test/data/classes/genericClass.kt new file mode 100644 index 00000000..db20ff7e --- /dev/null +++ b/test/data/classes/genericClass.kt @@ -0,0 +1,3 @@ +class Klass { + +} \ No newline at end of file diff --git a/test/data/functions/genericFunction.kt b/test/data/functions/genericFunction.kt new file mode 100644 index 00000000..6e07d04b --- /dev/null +++ b/test/data/functions/genericFunction.kt @@ -0,0 +1,5 @@ + +/** + * generic function + */ +fun generic() {} \ No newline at end of file diff --git a/test/playground.kt b/test/playground.kt index 455e56ff..38fd4a3f 100644 --- a/test/playground.kt +++ b/test/playground.kt @@ -40,6 +40,7 @@ class ClassWithConstructor(val name: String) data class Person(/** Doc at parameter */ val name: String, val age: Int) {} object Object { + throws(javaClass()) fun objectFunction() { } diff --git a/test/src/model/ClassTest.kt b/test/src/model/ClassTest.kt index 708a1798..82d24f16 100644 --- a/test/src/model/ClassTest.kt +++ b/test/src/model/ClassTest.kt @@ -18,6 +18,28 @@ public class ClassTest { } } + Test fun genericClass() { + verifyModel("test/data/classes/genericClass.kt") { model -> + with(model.nodes.single().members.single()) { + assertEquals(DocumentationNodeKind.Class, kind) + assertEquals("Klass", name) + assertEquals("", doc) + + with(details.single()) { + assertEquals("T", name) + assertEquals(DocumentationNodeKind.TypeParameter, kind) + assertEquals("", doc) + assertTrue(details.none()) + assertTrue(members.none()) + assertTrue(links.none()) + } + + assertEquals("", members.single().name) + assertTrue(links.none()) + } + } + } + Test fun emptyObject() { verifyModel("test/data/classes/emptyObject.kt") { model -> with(model.nodes.single().members.single()) { diff --git a/test/src/model/FunctionTest.kt b/test/src/model/FunctionTest.kt index 528166e6..c2a444b9 100644 --- a/test/src/model/FunctionTest.kt +++ b/test/src/model/FunctionTest.kt @@ -18,6 +18,28 @@ public class FunctionTest { } } + Test fun genericFunction() { + verifyModel("test/data/functions/genericFunction.kt") { model -> + with(model.nodes.single().members.single()) { + assertEquals("generic", name) + assertEquals(DocumentationNodeKind.Function, kind) + assertEquals("generic function", doc) + + with(details.single()) { + assertEquals("T", name) + assertEquals(DocumentationNodeKind.TypeParameter, kind) + assertEquals("", doc) + assertTrue(details.none()) + assertTrue(members.none()) + assertTrue(links.none()) + } + + assertTrue(members.none()) + assertTrue(links.none()) + } + } + } + Test fun functionWithParams() { verifyModel("test/data/functions/functionWithParams.kt") { model -> with(model.nodes.single().members.single()) { -- cgit