### Question:
QuarkusPlugin implements Plugin<Project> { @Override public void apply(Project project) { verifyGradleVersion(); registerModel(); final QuarkusPluginExtension quarkusExt = project.getExtensions().create(EXTENSION_NAME, QuarkusPluginExtension.class, project); registerTasks(project, quarkusExt); } @Inject  QuarkusPlugin(ToolingModelBuilderRegistry registry); @Override void apply(Project project); static final String ID; static final String QUARKUS_PACKAGE_TYPE; static final String EXTENSION_NAME; static final String LIST_EXTENSIONS_TASK_NAME; static final String ADD_EXTENSION_TASK_NAME; static final String REMOVE_EXTENSION_TASK_NAME; static final String QUARKUS_GENERATE_CODE_TASK_NAME; static final String QUARKUS_GENERATE_CODE_TESTS_TASK_NAME; static final String QUARKUS_BUILD_TASK_NAME; static final String GENERATE_CONFIG_TASK_NAME; static final String QUARKUS_DEV_TASK_NAME; static final String QUARKUS_REMOTE_DEV_TASK_NAME; @Deprecated
    static final String BUILD_NATIVE_TASK_NAME; static final String TEST_NATIVE_TASK_NAME; @Deprecated
    static final String QUARKUS_TEST_CONFIG_TASK_NAME; static final String NATIVE_TEST_SOURCE_SET_NAME; static final String NATIVE_TEST_IMPLEMENTATION_CONFIGURATION_NAME; static final String NATIVE_TEST_RUNTIME_ONLY_CONFIGURATION_NAME; }### Answer:
@Test public void shouldCreateTasks() { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply(QuarkusPlugin.ID); assertTrue(project.getPluginManager().hasPlugin(QuarkusPlugin.ID)); TaskContainer tasks = project.getTasks(); assertNotNull(tasks.getByName(QuarkusPlugin.QUARKUS_BUILD_TASK_NAME)); assertNotNull(tasks.getByName(QuarkusPlugin.QUARKUS_DEV_TASK_NAME)); assertNotNull(tasks.getByName(QuarkusPlugin.BUILD_NATIVE_TASK_NAME)); assertNotNull(tasks.getByName(QuarkusPlugin.LIST_EXTENSIONS_TASK_NAME)); assertNotNull(tasks.getByName(QuarkusPlugin.ADD_EXTENSION_TASK_NAME)); }
@Test public void shouldMakeAssembleDependOnQuarkusBuild() { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply(QuarkusPlugin.ID); project.getPluginManager().apply("base"); TaskContainer tasks = project.getTasks(); assertThat(tasks.getByName(BasePlugin.ASSEMBLE_TASK_NAME).getDependsOn()) .contains(tasks.getByName(QuarkusPlugin.QUARKUS_BUILD_TASK_NAME)); }
@Test public void shouldMakeQuarkusDevAndQuarkusBuildDependOnClassesTask() { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply(QuarkusPlugin.ID); project.getPluginManager().apply("java"); TaskContainer tasks = project.getTasks(); assertThat(tasks.getByName(QuarkusPlugin.QUARKUS_BUILD_TASK_NAME).getDependsOn()) .contains(tasks.getByName(JavaPlugin.CLASSES_TASK_NAME)); assertThat(tasks.getByName(QuarkusPlugin.QUARKUS_DEV_TASK_NAME).getDependsOn()) .contains(tasks.getByName(JavaPlugin.CLASSES_TASK_NAME)); }