package org.jsondoc.core.scanner.builder; import org.jsondoc.core.annotation.global.ApiChangelog; import org.jsondoc.core.annotation.global.ApiChangelogSet; import org.jsondoc.core.annotation.global.ApiGlobal; import org.jsondoc.core.annotation.global.ApiGlobalSection; import org.jsondoc.core.annotation.global.ApiMigration; import org.jsondoc.core.annotation.global.ApiMigrationSet; import org.jsondoc.core.pojo.global.ApiGlobalDoc; import org.jsondoc.core.pojo.global.ApiGlobalSectionDoc; import org.jsondoc.core.scanner.DefaultJSONDocScanner; import org.jsondoc.core.scanner.JSONDocScanner; import org.junit.Assert; import org.junit.Test; import com.google.common.collect.Sets; public class JSONDocApiGlobalBuilderTest { JSONDocScanner jsondocScanner = new DefaultJSONDocScanner(); @ApiGlobal( sections = { @ApiGlobalSection(title = "title", paragraphs = { "Paragraph 1", "Paragraph 2", "/jsondocfile./src/main/resources/text.txt" } ) } ) private class Global { } @ApiGlobal( sections = { @ApiGlobalSection(title = "section1", paragraphs = { "Paragraph 1" }), @ApiGlobalSection(title = "abc", paragraphs = { "Paragraph 1", "Paragraph2" }), @ApiGlobalSection(title = "198xyz", paragraphs = { "Paragraph 1", "Paragraph2", "Paragraph3", "Paragraph4" }), } ) private class MultipleGlobalSections { } @ApiChangelogSet(changlogs = { @ApiChangelog(changes = { "Change #1" }, version = "1.0") }) private class Changelog { } @ApiMigrationSet(migrations = { @ApiMigration(fromversion = "1.0", steps = { "Step #1" }, toversion = "1.1") }) private class Migration { } @ApiGlobal( sections = { @ApiGlobalSection(title = "title", paragraphs = { "Paragraph 1", "Paragraph 2", "/jsondocfile./src/main/resources/text.txt" } ) } ) @ApiChangelogSet(changlogs = { @ApiChangelog(changes = { "Change #1" }, version = "1.0") }) @ApiMigrationSet(migrations = { @ApiMigration(fromversion = "1.0", steps = { "Step #1" }, toversion = "1.1") }) private class AllTogether { } @Test public void testApiGlobalDoc() { ApiGlobalDoc apiGlobalDoc = jsondocScanner.getApiGlobalDoc(Sets.<Class<?>>newHashSet(Global.class), Sets.<Class<?>>newHashSet(), Sets.<Class<?>>newHashSet()); Assert.assertNotNull(apiGlobalDoc); Assert.assertEquals(1, apiGlobalDoc.getSections().size()); ApiGlobalSectionDoc sectionDoc = apiGlobalDoc.getSections().iterator().next(); Assert.assertEquals("title", sectionDoc.getTitle()); Assert.assertEquals(3, sectionDoc.getParagraphs().size()); apiGlobalDoc = jsondocScanner.getApiGlobalDoc(Sets.<Class<?>>newHashSet(), Sets.<Class<?>>newHashSet(Changelog.class), Sets.<Class<?>>newHashSet()); Assert.assertNotNull(apiGlobalDoc); Assert.assertEquals(1, apiGlobalDoc.getChangelogset().getChangelogs().size()); apiGlobalDoc = jsondocScanner.getApiGlobalDoc(Sets.<Class<?>>newHashSet(MultipleGlobalSections.class), Sets.<Class<?>>newHashSet(), Sets.<Class<?>>newHashSet()); Assert.assertNotNull(apiGlobalDoc); Assert.assertEquals(3, apiGlobalDoc.getSections().size()); ApiGlobalSectionDoc[] apiGlobalSectionDocs = apiGlobalDoc.getSections().toArray(new ApiGlobalSectionDoc[apiGlobalDoc.getSections().size()]); Assert.assertEquals("section1", apiGlobalSectionDocs[0].getTitle()); Assert.assertEquals("abc", apiGlobalSectionDocs[1].getTitle()); Assert.assertEquals("198xyz", apiGlobalSectionDocs[2].getTitle()); apiGlobalDoc = jsondocScanner.getApiGlobalDoc(Sets.<Class<?>>newHashSet(), Sets.<Class<?>>newHashSet(), Sets.<Class<?>>newHashSet(Migration.class)); Assert.assertNotNull(apiGlobalDoc); Assert.assertEquals(1, apiGlobalDoc.getMigrationset().getMigrations().size()); apiGlobalDoc = jsondocScanner.getApiGlobalDoc(Sets.<Class<?>>newHashSet(AllTogether.class), Sets.<Class<?>>newHashSet(AllTogether.class), Sets.<Class<?>>newHashSet(AllTogether.class)); Assert.assertNotNull(apiGlobalDoc); Assert.assertEquals(1, apiGlobalDoc.getSections().size()); Assert.assertEquals(1, apiGlobalDoc.getMigrationset().getMigrations().size()); Assert.assertEquals(1, apiGlobalDoc.getChangelogset().getChangelogs().size()); } }