private PlantUmlDiagram createDiagram(List<String> rawDiagramLines) {
        List<String> diagramLines = filterOutComments(rawDiagramLines);
        Set<PlantUmlComponent> components = parseComponents(diagramLines);
        PlantUmlComponents plantUmlComponents = new PlantUmlComponents(components);

        List<ParsedDependency> dependencies = parseDependencies(plantUmlComponents, diagramLines);

        return new PlantUmlDiagram.Builder(plantUmlComponents)
                .withDependencies(dependencies)
                .build();
    }
@Test
    @UseDataProvider("dependency_arrow_testcases")
    public void parses_various_types_of_dependency_arrows(String dependency) {
        PlantUmlDiagram diagram = createDiagram(TestDiagram.in(temporaryFolder)
                .component("SomeOrigin").withStereoTypes("..origin..")
                .component("SomeTarget").withStereoTypes("..target..")
                .rawLine(dependency)
                .write());

        PlantUmlComponent target = getOnlyElement(getComponentWithName("SomeOrigin", diagram).getDependencies());

        assertThat(target.getComponentName())
                .as("dependency component name")
                .isEqualTo(new ComponentName("SomeTarget"));
    }