/** Registers all standard processors. */ public static void registerStandardProcessors(Model model) { model.registerProcessor(new Resolver()); model.registerProcessor(new Merger()); model.registerProcessor(new Normalizer()); model.registerProcessor(new Linter()); }
/** Registers all standard processors. */ public static void registerStandardProcessors(Model model) { model.registerProcessor(new Resolver()); model.registerProcessor(new Merger()); model.registerProcessor(new Normalizer()); model.registerProcessor(new Linter()); }
final Key<Boolean> stage1 = Key.get(Boolean.class, Names.named("stage1")); final Key<Boolean> stage2 = Key.get(Boolean.class, Names.named("stage2")); testModel.registerProcessor(new Processor() { @Override public ImmutableList<Key<?>> requires() { return ImmutableList.of(); testModel.registerProcessor(new Processor() { @Override public ImmutableList<Key<?>> requires() { return ImmutableList.<Key<?>>of(stage1);
@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 resolvesOkWithPartialNames() { // Modify the descriptor. Protoc generates full names, and // we want to check whether we can also deal with partial names. FileDescriptorSet.Builder builder = descriptors.toBuilder(); builder .getFileBuilder(0) .getMessageTypeBuilder(0) .getFieldBuilder(1) // required N n .setTypeName("N"); Model testApi = Model.create(builder.build()); testApi.registerProcessor(new Resolver()); Truth.assertThat(testApi.establishStage(Resolved.KEY)).isTrue(); Truth.assertThat(testApi.getDiagReporter().getDiagCollector().hasErrors()).isFalse(); }
@Test public void resolvesWithErrors() { // Modify the descriptor injecting some errors. FileDescriptorSet.Builder builder = descriptors.toBuilder(); builder .getFileBuilder(0) .getMessageTypeBuilder(0) .getFieldBuilder(1) // required N n .setTypeName("undef_N"); builder .getFileBuilder(0) .getMessageTypeBuilder(0) .getFieldBuilder(2) // optional E e .setTypeName("undef_E"); Model testApi = Model.create(builder.build()); testApi.registerProcessor(new Resolver()); Truth.assertThat(testApi.establishStage(Resolved.KEY)).isFalse(); Truth.assertThat(testApi.getDiagReporter().getDiagCollector().getErrorCount()).isEqualTo(2); assertThat(testApi.getDiagReporter().getDiagCollector().getDiags().get(0).toString()) .contains("undef_N"); assertThat(testApi.getDiagReporter().getDiagCollector().getDiags().get(1).toString()) .contains("undef_E"); } }