package de.kontext_e.jqassistant.plugin.plantuml.scanner; import java.util.List; import java.util.Map; import org.junit.Test; import net.sourceforge.plantuml.BlockUml; import net.sourceforge.plantuml.SourceStringReader; import net.sourceforge.plantuml.classdiagram.AbstractEntityDiagram; import net.sourceforge.plantuml.core.Diagram; import net.sourceforge.plantuml.cucadiagram.Code; import net.sourceforge.plantuml.cucadiagram.IGroup; import net.sourceforge.plantuml.cucadiagram.Link; import net.sourceforge.plantuml.cucadiagram.entity.EntityFactory; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.isOneOf; import static org.junit.Assert.assertThat; public class PumlTest { @Test public void test() throws Exception { String plantuml2 = "[plantuml,role=concept]\n" + "----\n" + "@startuml\n" + "[artifactId:xo.impl] as impl <<:Maven:Project>>\n" + "[artifactId:xo.api] as api <<:Maven:Project>>\n" + "[artifactId:xo.spi] as spi <<:Maven:Project>>\n" + "\n" + "impl -> api : Defines Dependency\n" + "impl -> spi : Defines Dependency\n" + "spi -> api : Defines Dependency\n" + "@enduml\n"+ "----\n" ; String plantuml = "@startuml\n"+ "package de.kontext_e.project.domain #ffffff {\n" + "}\n" + "package de.kontext_e.project.services #ffffff {\n" + "}\n" + "\n" + "de.kontext_e.project.services --> de.kontext_e.project.domain\n"+ "@enduml\n" ; String nested = "@startuml\n"+ "package de.kontext_e.project.domain #ffffff {\n" + " package de.kontext_e.project.domain.sub1 {}\n" + "}\n" + "package de.kontext_e.project.services #ffffff {\n" + "}\n" + "\n" + "de.kontext_e.project.services --> de.kontext_e.project.domain\n"+ "@enduml\n" ; SourceStringReader reader = new SourceStringReader(nested); List<BlockUml> blocks = reader.getBlocks(); Diagram diagram = blocks.get(0).getDiagram(); AbstractEntityDiagram descriptionDiagram = (AbstractEntityDiagram) diagram; EntityFactory entityFactory = descriptionDiagram.getEntityFactory(); Map<Code, IGroup> groups = entityFactory.getGroups(); assertThat(groups.size(), is(3)); for (Map.Entry<Code, IGroup> codeIGroupEntry : groups.entrySet()) { IGroup iGroup = codeIGroupEntry.getValue(); assertThat(iGroup.getCode().getFullName(), isOneOf( "de.kontext_e.project.domain", "de.kontext_e.project.domain.sub1", "de.kontext_e.project.services" )); } List<Link> links = entityFactory.getLinks(); assertThat(links.size(), is(1)); assertThat(links.get(0).getEntity1().getCode().getFullName(), is("de.kontext_e.project.services")); assertThat(links.get(0).getEntity2().getCode().getFullName(), is("de.kontext_e.project.domain")); } }