aboutsummaryrefslogtreecommitdiff
path: root/test/src/model/JavaTest.kt
blob: d40b3ba332ed75083fb5ed7184cad5cd011deccc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package org.jetbrains.dokka.tests

import kotlin.test.*
import org.jetbrains.dokka.*
import org.junit.*

public class JavaTest {
    Test fun function() {
        verifyModel("test/data/java/member.java") { model ->
            val pkg = model.members.single()
            with(pkg.members.single()) {
                assertEquals("Test", name)
                assertEquals(DocumentationNode.Kind.Class, kind)
                with(members.single()) {
                    assertEquals("fn", name)
                    assertEquals(DocumentationNode.Kind.Function, kind)
                    assertEquals("Summary for Function", content.summary.toTestString())
                    assertEquals("Unit", detail(DocumentationNode.Kind.Type).name)
                    assertTrue(members.none())
                    assertTrue(links.none())
                    with(details.first { it.name == "name" }) {
                        assertEquals(DocumentationNode.Kind.Parameter, kind)
                        assertEquals("String", detail(DocumentationNode.Kind.Type).name)
                    }
                    with(details.first { it.name == "value" }) {
                        assertEquals(DocumentationNode.Kind.Parameter, kind)
                        assertEquals("Int", detail(DocumentationNode.Kind.Type).name)
                    }
                }
            }
        }
    }

    Test fun memberWithModifiers() {
        verifyModel("test/data/java/memberWithModifiers.java") { model ->
            val pkg = model.members.single()
            with(pkg.members.single()) {
                assertEquals("abstract", details[0].name)
                with(members.single()) {
                    assertEquals("protected", details[0].name)
                }
            }
        }
    }

    Test fun superClass() {
        verifyModel("test/data/java/superClass.java") { model ->
            val pkg = model.members.single()
            with(pkg.members.single()) {
                val superTypes = details(DocumentationNode.Kind.Supertype)
                assertEquals(2, superTypes.size())
                assertEquals("Exception", superTypes[0].name)
                assertEquals("Cloneable", superTypes[1].name)
            }
        }
    }

    Test fun arrayType() {
        verifyModel("test/data/java/arrayType.java") { model ->
            val pkg = model.members.single()
            with(pkg.members.single().members.single()) {
                assertEquals("Array<String>", detail(DocumentationNode.Kind.Type).name)
                with(details(DocumentationNode.Kind.Parameter).single()) {
                    assertEquals("Array<Int>", detail(DocumentationNode.Kind.Type).name)
                }
            }
        }
    }

}