public PluggableViewModel<PluggableTask> viewModelFor(
     final PluggableTask pluggableTask, String actionName) {
   if (PluggableTaskConfigStore.store()
       .hasPreferenceFor(pluggableTask.getPluginConfiguration().getId())) {
     TaskPreference taskPreference =
         PluggableTaskConfigStore.store()
             .preferenceFor(pluggableTask.getPluginConfiguration().getId());
     return new PluggableTaskViewModel(
         pluggableTask,
         viewTemplates.get(actionName),
         Renderer.ERB,
         taskPreference.getView().displayValue(),
         getTemplate(taskPreference.getView()));
   }
   return new MissingPluggableTaskViewModel(
       pluggableTask, viewTemplates.get(actionName), Renderer.ERB);
 }
  @Test
  public void shouldValidateTask() {
    Configuration configuration = new Configuration(ConfigurationPropertyMother.create("KEY1"));
    PluggableTask task =
        new PluggableTask("abc", new PluginConfiguration("abc.def", "1"), configuration);
    ValidationResult validationResult = new ValidationResult();
    validationResult.addError(new ValidationError("KEY1", "error message"));
    when(pluginManager.doOn(
            eq(Task.class), eq(task.getPluginConfiguration().getId()), any(ActionWithReturn.class)))
        .thenReturn(validationResult);

    pluggableTaskService.validate(task);
    assertThat(task.getConfiguration().getProperty("KEY1").errors().isEmpty(), is(false));
    assertThat(
        task.getConfiguration().getProperty("KEY1").errors().firstError(), is("error message"));
  }