private Optional<Narrative> narrativeLoadedFrom(File narrativeFile, String type) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(narrativeFile), "UTF-8")); List<String> lines = readPreambleFrom(reader); String title = null; String cardNumber = findCardNumberIn(lines); List<String> versionNumbers = findVersionNumberIn(lines); Optional<String> titleLine = readOptionalTitleFrom(lines); if (titleLine.isPresent()) { title = titleLine.get(); } String text = readNarrativeFrom(lines); reader.close(); return Optional.of(new Narrative(Optional.fromNullable(title), Optional.fromNullable(cardNumber), versionNumbers, type, text)); } catch(IOException ex) { ex.printStackTrace(); } return Optional.absent(); }
public java.util.Optional<Narrative> fromFile(File narrativeFile, String defaultType) { try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(narrativeFile), StandardCharsets.UTF_8))) { List<String> lines = readPreambleFrom(reader); String title = null; String type = defaultType; String cardNumber = findCardNumberIn(lines); List<String> versionNumbers = findVersionNumberIn(lines); Optional<String> titleLine = readOptionalTitleFrom(lines); if (titleLine.isPresent()) { title = titleFrom(titleLine.get()); type = typeFrom(titleLine.get()).orElse(defaultType); } String text = readNarrativeFrom(lines); reader.close(); List<TestTag> tags = (StringUtils.isEmpty(title)) ? new ArrayList<>() : Collections.singletonList(TestTag.withName(title).andType("story")); return java.util.Optional.of(new Narrative(Optional.ofNullable(title), Optional.of(narrativeFile.getPath()), Optional.ofNullable(cardNumber), versionNumbers, type, text, tags)); } catch (IOException ex) { ex.printStackTrace(); } return java.util.Optional.empty(); }
private Optional<Narrative> narrativeLoadedFrom(File narrativeFile, String defaultType) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(narrativeFile), "UTF-8")); List<String> lines = readPreambleFrom(reader); String title = null; String type = defaultType; String cardNumber = findCardNumberIn(lines); List<String> versionNumbers = findVersionNumberIn(lines); Optional<String> titleLine = readOptionalTitleFrom(lines); if (titleLine.isPresent()) { title = titleFrom(titleLine.get()); type = typeFrom(titleLine.get()).or(defaultType); } String text = readNarrativeFrom(lines); reader.close(); return Optional.of(new Narrative(Optional.fromNullable(title), Optional.fromNullable(cardNumber), versionNumbers, type, text)); } catch (IOException ex) { ex.printStackTrace(); } return Optional.absent(); }
public Optional<Narrative> loadFeatureNarrative(File narrativeFile) { Optional<Feature> loadedFeature = loadFeature(narrativeFile); if (!loadedFeature.isPresent()) { return Optional.empty(); } Feature feature = loadedFeature.get(); String cardNumber = findCardNumberInTags(tagsDefinedIn(feature)); List<String> versionNumbers = findVersionNumberInTags(tagsDefinedIn(feature)); String title = feature.getName(); String text = descriptionWithScenarioReferencesFrom(feature); String id = getIdFromName(title); List<TestTag> tags = feature.getTags().stream().map(tag -> TestTag.withValue(tag.getName())).collect(Collectors.toList()); tags.add(TestTag.withName(title).andType("feature")); return Optional.of(new Narrative(Optional.ofNullable(title), Optional.ofNullable(id), Optional.ofNullable(cardNumber), versionNumbers, "feature", text != null ? text : "", tags)); }
public Optional<Narrative> loadFeatureNarrative(File narrativeFile) { CucumberFeatureListener gherkinStructure =new CucumberFeatureListener(); Parser parser = new Parser(gherkinStructure, true, "root", false, locale); try { String gherkinScenarios = filterOutCommentsFrom(FileUtils.readFileToString(narrativeFile)); parser.parse(gherkinScenarios, narrativeFile.getName(),0); String cardNumber = findCardNumberInTags(gherkinStructure.getFeature().getTags()); List<String> versionNumbers = findVersionNumberInTags(gherkinStructure.getFeature().getTags()); String title = gherkinStructure.getFeature().getName(); String text = gherkinStructure.getFeature().getDescription(); return Optional.of(new Narrative(Optional.fromNullable(title), Optional.fromNullable(cardNumber), versionNumbers, "feature", text)); } catch (IOException ex) { ex.printStackTrace(); } return Optional.absent(); }