### Question:
ProcessPropertyWriter extends BasePropertyWriter implements ElementContainer { public void addChildEdge(BPMNEdge edge) { if (edge == null) { return; } List<DiagramElement> planeElement = bpmnPlane.getPlaneElement(); if (planeElement.contains(edge)) { throw new IllegalArgumentException("Cannot add the same edge twice: " + edge.getId()); } planeElement.add(edge); } ProcessPropertyWriter(Process process, VariableScope variableScope); void setId(String value); Process getProcess(); void addChildShape(BPMNShape shape); void addChildEdge(BPMNEdge edge); BPMNDiagram getBpmnDiagram(); void addChildElement(BasePropertyWriter p); @Override Collection<BasePropertyWriter> getChildElements(); BasePropertyWriter getChildElement(String id); void setName(String value); void setExecutable(Boolean value); void setPackage(String value); void setType(String value); void setVersion(String value); void setAdHoc(Boolean adHoc); void setDescription(String value); void setProcessVariables(BaseProcessVariables processVariables); void setMetadata(final MetaDataAttributes metaDataAttributes); void setCaseFileVariables(CaseFileVariables caseFileVariables); void setCaseIdPrefix(CaseIdPrefix caseIdPrefix); void setCaseRoles(CaseRoles roles); void setGlobalVariables(GlobalVariables globalVariables); void setSlaDueDate(SLADueDate slaDueDate); void setDefaultImports(List<DefaultImport> imports); void addLaneSet(Collection<LanePropertyWriter> lanes); Collection<ElementParameters> getSimulationParameters(); Relationship getRelationship();  }### Answer:
@Test public void addChildEdge() { BPMNEdge bpmnEdge = di.createBPMNEdge(); bpmnEdge.setId("a"); p.addChildEdge(bpmnEdge); assertThatThrownBy(() -> p.addChildEdge(bpmnEdge)) .isInstanceOf(IllegalArgumentException.class) .hasMessageStartingWith("Cannot add the same edge twice"); }