@Override public DiagCollector getDiagCollector() { return protoModel.getDiagReporter().getDiagCollector(); }
@Override public List<Diag> getDiags() { return model.getDiagReporter().getDiagCollector().getDiags(); } };
@Override public List<Diag> getDiags() { return model.getDiagReporter().getDiagCollector().getDiags(); } };
@Override public int getErrorCount() { return model.getDiagReporter().getDiagCollector().getErrorCount(); }
private void warning(String message, Object... args) { model .getDiagReporter() .getDiagCollector() .addDiag(Diag.warning(SimpleLocation.TOPLEVEL, message, args)); } }
private List<Diag> getErrors() { return FluentIterable.from(diagReporter.getDiagCollector().getDiags()) .filter( new Predicate<Diag>() { @Override public boolean apply(Diag diag) { return Kind.ERROR.equals(diag.getKind()); } }) .toList(); } }
private void error(String message, Object... args) { model .getDiagReporter() .getDiagCollector() .addDiag(Diag.error(SimpleLocation.TOPLEVEL, message, args)); }
private ConfigSource loadConfigFromFiles(List<String> configFileNames) { List<File> configFiles = pathsToFiles(configFileNames); if (model.getDiagReporter().getDiagCollector().getErrorCount() > 0) { return null; } ImmutableMap<String, Message> supportedConfigTypes = ImmutableMap.of( ConfigProto.getDescriptor().getFullName(), ConfigProto.getDefaultInstance()); return MultiYamlReader.read( model.getDiagReporter().getDiagCollector(), configFiles, supportedConfigTypes); }
@Override protected void process() throws Exception { model.establishStage(Merged.KEY); if (model.getDiagReporter().getDiagCollector().getErrorCount() > 0) { for (Diag diag : model.getDiagReporter().getDiagCollector().getDiags()) { System.err.println(diag.toString()); } return; } String outputPath = options.get(OUTPUT_FILE); Map<String, String> outputFiles = generateConfig(outputPath); ToolUtil.writeFiles(outputFiles, ""); }
@Override protected void process() throws Exception { model.establishStage(Merged.KEY); if (model.getDiagReporter().getDiagCollector().getErrorCount() > 0) { for (Diag diag : model.getDiagReporter().getDiagCollector().getDiags()) { System.err.println(diag.toString()); } return; } Map<String, GeneratedResult<Doc>> results = generate(model); ToolUtil.writeFiles(GeneratedResult.extractBodies(results), options.get(OUTPUT_DIR)); }
/** * Asserts if filtered result equals expected string. Asserts failure if there are errors detected * during the filtering. */ private void assertResult(String expected, String result) { if (diagReporter.getDiagCollector().getErrorCount() > 0) { Truth.assertWithMessage("Errors detected while filtering comment") .fail(NEWLINE_JOINER.join(diagReporter.getDiagCollector().getDiags())); } else { Truth.assertThat(result).isEqualTo(expected); } }
private void checkNoErrors() { if (model.getDiagReporter().getDiagCollector().hasErrors()) { Assert.fail( "Errors: " + Joiner.on("\n").join(model.getDiagReporter().getDiagCollector().getDiags())); } StageValidator.assertStages(ImmutableList.<Key<?>>of(Resolved.KEY, Merged.KEY), model); }
private void assertError(final String phrase) { Assert.assertTrue(model.getDiagReporter().getDiagCollector().hasErrors()); Assert.assertTrue( Iterators.any( model.getDiagReporter().getDiagCollector().getDiags().iterator(), new Predicate<Diag>() { @Override public boolean apply(Diag diag) { return diag.getKind() == Kind.ERROR && diag.toString().contains(phrase); } })); }
private ImmutableList<PathSegment> parse(Model model, String path) { ImmutableList<PathSegment> segments = new HttpTemplateParser( model.getDiagReporter().getDiagCollector(), SimpleLocation.TOPLEVEL, path, configVersion) .parse(); return segments; } }
private void expectError(String message) { if (diagReporter.getDiagCollector().getErrorCount() == 0) { Truth.assertWithMessage("No error found.").fail("Expected error message %s", message); } else if (diagReporter.getDiagCollector().getErrorCount() > 1) { Truth.assert_().fail("Found more than one error: \n%s", NEWLINE_JOINER.join(getErrors())); } else { Truth.assertThat(Iterables.getOnlyElement(getErrors()).toString()).isEqualTo(message); } }
/** Creates a model, based on the provided config files. */ public Model createModel(List<String> configFileNames) { try { Model model = Model.create(getDescriptor(), protoFiles, enabledExperiments, ExtensionPool.EMPTY); model.setConfigSources( getApiYamlConfigSources(model.getDiagReporter().getDiagCollector(), configFileNames)); return model; } catch (IOException e) { throw new RuntimeException(e); } }
@Test public void resolvesOkFromProtoc() { Model testApi = Model.create(descriptors); testApi.registerProcessor(new Resolver()); Truth.assertThat(testApi.establishStage(Resolved.KEY)).isTrue(); Truth.assertThat(testApi.getDiagReporter().getDiagCollector().hasErrors()).isFalse(); StageValidator.assertStages(ImmutableList.<Key<?>>of(Resolved.KEY), testApi); }
@Test public void mergesWithTypeMismatch() throws Exception { createApi("service_type_mismatch.proto"); model.setConfigSources( testConfig.getApiYamlConfigSources( model.getDiagReporter().getDiagCollector(), ImmutableList.of("service_type_mismatch.yaml"))); model.establishStage(Merged.KEY); assertError("protiary.test.ExtraEnum"); assertError("protiary.test.Bucket"); }
@Test public void mergesWithApiVersion() throws Exception { createApi("service_with_version.proto"); model.setConfigSources( testConfig.getApiYamlConfigSources( model.getDiagReporter().getDiagCollector(), ImmutableList.of("service_with_version.yaml"))); StandardSetup.registerStandardConfigAspects(model); model.establishStage(Merged.KEY); Interface iface = getInterface("protiary.test.v2.Storage"); Assert.assertEquals("v2", iface.getAttribute(VersionAttribute.KEY).majorVersion()); }
@Test public void mergesWithBetaVersion() throws Exception { createApi("service_with_beta_version.proto"); model.setConfigSources( testConfig.getApiYamlConfigSources( model.getDiagReporter().getDiagCollector(), ImmutableList.of("service_with_beta_version.yaml"))); StandardSetup.registerStandardConfigAspects(model); model.establishStage(Merged.KEY); Interface iface = getInterface("protiary.test.v2beta1.Storage"); Assert.assertEquals("v2beta1", iface.getAttribute(VersionAttribute.KEY).majorVersion()); }