### Question:
PmdPlugin implements Plugin { @Override public void define(Context context) { context.addExtensions( PropertyDefinition.builder(PmdConfiguration.PROPERTY_GENERATE_XML) .defaultValue("false") .name("Generate XML Report") .hidden() .build(), PmdSensor.class, PmdConfiguration.class, PmdExecutor.class, PmdRulesDefinition.class, PmdUnitTestsRulesDefinition.class, PmdProfileExporter.class, PmdProfileImporter.class, PmdViolationRecorder.class ); }  @Override void define(Context context);  }### Answer:
@SuppressWarnings("unchecked") @Test void testPluginConfiguration() { final SonarRuntime runtime = SonarRuntimeImpl.forSonarQube(Version.create(7, 3), SonarQubeSide.SCANNER); final Plugin.Context context = new Plugin.Context(runtime); subject.define(context); final List extensions = context.getExtensions(); assertThat(extensions).hasSize(9); assertThat(extensions).contains( PmdSensor.class, PmdConfiguration.class, PmdExecutor.class, PmdRulesDefinition.class, PmdUnitTestsRulesDefinition.class, PmdProfileExporter.class, PmdProfileImporter.class, PmdViolationRecorder.class ); }