### Question:
ReqIF10Iterator { public void iterateRecursivelyThrough( final EList<Specification> specifications, final SpecificationCallback specificationCallback, final SpecObjectCallback specObjectCallback) { for (Specification specification : specifications) { this.iterateRecursivelyThrough(specification, specificationCallback, specObjectCallback); } }  void iterateRecursivelyThrough(
			final EList<Specification> specifications,
			final SpecificationCallback specificationCallback,
			final SpecObjectCallback specObjectCallback); void iterateRecursivelyThrough(final Specification specification,
			final SpecificationCallback specificationCallback,
			final SpecObjectCallback specObjectCallback); void iterateThrough(EList<SpecRelation> relations,
			SpecRelationCallback specRelationCallback);  }### Answer:
@Test public void testReqIFIterator_ShouldFilterOutline() { final TestSpecification testSpecification = new TestSpecification(); final List<TestSpecObject> testSpecObjects = new ArrayList<TestSpecObject>(); ReqIF10Iterator iterator = new ReqIF10Iterator(); final EList<Specification> specs = reqif.getCoreContent() .getSpecifications(); iterator.iterateRecursivelyThrough(specs, new SpecificationCallback() { @Override public void call(SpecificationDTO specificationDto) { testSpecification.setLongName(specificationDto.getTypeName()); testSpecification.setTitle(specificationDto.getAttributeValue(0)); } }, new SpecObjectCallback() { public void call(final SpecObjectDTO specObject, final int depth) { if (specObject.getTypeName().equals("HeadlineType")) { TestSpecObject testSpecObject = new TestSpecObject(); testSpecObject.setType(specObject.getTypeName()); for (AttributeValue av : specObject.getSpecObject() .getValues()) { AttributeDefinition ad = ReqIF10Util .getAttributeDefinition(av); TestAttribute attribute = new TestAttribute(); attribute.setName(ad.getLongName()); attribute.setValue(AttributeValueConverter .getDefaultValue(av)); attribute.setXhtml(AttributeValueConverter .hasXhtmlContent(av)); testSpecObject.getAttributes().add(attribute); } testSpecObjects.add(testSpecObject); } } }); assertEquals("Spec", testSpecification.getLongName()); assertEquals("Test-Specification", testSpecification.getTitle()); assertEquals(3, testSpecObjects.size()); this.assertSpecObjectAttributes(testSpecObjects.get(0), "ID", "Chapter 1"); this.assertSpecObjectAttributes(testSpecObjects.get(1), "ID", "Chapter 2"); this.assertSpecObjectAttributes(testSpecObjects.get(2), "ID", "Section 2.2"); }