private InitInfoAnswerElement mergeParseAnswer( boolean summary, boolean verboseError, ParseAnswerElement parseAnswer) { InitInfoAnswerElement answerElement = new InitInfoAnswerElement(); mergeInitStepAnswer(answerElement, parseAnswer, summary, verboseError); answerElement.setParseStatus(parseAnswer.getParseStatus()); answerElement.setParseTrees(parseAnswer.getParseTrees()); return answerElement; }
@Override public InitInfoAnswerElement initInfoBgpAdvertisements(boolean summary, boolean verboseError) { ParseEnvironmentBgpTablesAnswerElement parseAnswer = loadParseEnvironmentBgpTablesAnswerElement(); InitInfoAnswerElement answerElement = mergeParseAnswer(summary, verboseError, parseAnswer); _logger.info(answerElement.prettyPrint()); return answerElement; }
@Test public void testPrettyPrint() { String errorMessage = "message is: parser: SampleParser: line 50, sample error\n"; BatfishException exception = new BatfishException(errorMessage); BatfishStackTrace stackTrace = new BatfishStackTrace(exception); List<BatfishStackTrace> errors = new ArrayList<>(); errors.add(stackTrace); _element.getErrors().put("sampleError", errors); StringBuilder expected = new StringBuilder(); expected.append("PARSING SUMMARY\n"); expected.append("DETAILED ERRORS\n"); for (BatfishStackTrace trace : _element.getErrors().get("sampleError")) { expected.append(" Failed to parse sampleError:\n"); for (String line : trace.getLineMap()) { expected.append(" " + line + "\n"); } } expected.append("STATISTICS\n"); expected.append(" Parsing results:\n"); assertThat(_element.prettyPrint(), equalTo(expected.toString())); }
@Test public void testSetErrors() { BatfishException exception = new BatfishException("sample exception"); BatfishStackTrace stackTrace = new BatfishStackTrace(exception); List<BatfishStackTrace> errors = new ArrayList<>(); errors.add(stackTrace); SortedMap<String, List<BatfishStackTrace>> error = new TreeMap<>(); error.put("error", errors); _element.setErrors(error); assertThat(_element.getErrors().get("error"), is(errors)); } }
private void mergeInitStepAnswer( InitInfoAnswerElement initInfoAnswerElement, InitStepAnswerElement initStepAnswerElement, boolean summary, boolean verboseError) { if (!summary) { if (verboseError) { SortedMap<String, List<BatfishStackTrace>> errors = initInfoAnswerElement.getErrors(); initStepAnswerElement .getErrors() .forEach( (hostname, initStepErrors) -> errors.computeIfAbsent(hostname, k -> new ArrayList<>()).add(initStepErrors)); } SortedMap<String, Warnings> warnings = initInfoAnswerElement.getWarnings(); initStepAnswerElement .getWarnings() .forEach( (hostname, initStepWarnings) -> { Warnings combined = warnings.computeIfAbsent(hostname, h -> buildWarnings(_settings)); combined.getParseWarnings().addAll(initStepWarnings.getParseWarnings()); combined.getPedanticWarnings().addAll(initStepWarnings.getPedanticWarnings()); combined.getRedFlagWarnings().addAll(initStepWarnings.getRedFlagWarnings()); combined .getUnimplementedWarnings() .addAll(initStepWarnings.getUnimplementedWarnings()); }); } }
@Before public void setUp() { _element = new InitInfoAnswerElement(); }
private void mergeConvertAnswer( boolean summary, boolean verboseError, InitInfoAnswerElement answerElement) { ConvertConfigurationAnswerElement convertAnswer = loadConvertConfigurationAnswerElementOrReparse(); mergeInitStepAnswer(answerElement, convertAnswer, summary, verboseError); convertAnswer.getConvertStatus().entrySet().stream() .filter(s -> s.getValue() == ConvertStatus.FAILED) .forEach(s -> answerElement.getParseStatus().put(s.getKey(), ParseStatus.FAILED)); }
initInfoAnswerElement.setParseTrees(Collections.emptySortedMap()); answer.addAnswerElement(initInfoAnswerElement); action = true;
@Test public void checkNonEmptyErrorsSet() { BatfishException exception = new BatfishException("sample exception"); BatfishStackTrace stackTrace = new BatfishStackTrace(exception); _element.getErrors().put("error", new ArrayList<>()); _element.getErrors().get("error").add(stackTrace); assertThat(_element.getErrors().get("error").size(), is(1)); assertTrue(_element.getErrors().get("error").contains(stackTrace)); }
@Override public InitInfoAnswerElement initInfoRoutes(boolean summary, boolean verboseError) { ParseEnvironmentRoutingTablesAnswerElement parseAnswer = loadParseEnvironmentRoutingTablesAnswerElement(); InitInfoAnswerElement answerElement = mergeParseAnswer(summary, verboseError, parseAnswer); _logger.info(answerElement.prettyPrint()); return answerElement; }
@Test public void testGetErrors() { BatfishException exception = new BatfishException("sample exception"); BatfishStackTrace stackTrace = new BatfishStackTrace(exception); List<BatfishStackTrace> errors = new ArrayList<>(); errors.add(stackTrace); _element.getErrors().put("error", errors); assertThat(_element.getErrors().get("error"), is(errors)); }
@Override public InitInfoAnswerElement initInfo(boolean summary, boolean verboseError) { ParseVendorConfigurationAnswerElement parseAnswer = loadParseVendorConfigurationAnswerElement(); InitInfoAnswerElement answerElement = mergeParseAnswer(summary, verboseError, parseAnswer); mergeConvertAnswer(summary, verboseError, answerElement); _logger.info(answerElement.prettyPrint()); return answerElement; }
@Test public void checkEmptyErrors() { assertThat(_element.getErrors().size(), is(0)); }