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), taskPreference.getView().displayValue(), getTemplate(taskPreference.getView())); } return new MissingPluggableTaskViewModel(pluggableTask, viewTemplates.get(actionName)); }
@Before public void setUp() throws Exception { cleanupTaskPreferences(); taskPreference = mock(TaskPreference.class); PluggableTaskConfigStore.store().setPreferenceFor("plugin-1", taskPreference); TaskView view = mock(TaskView.class); when(taskPreference.getView()).thenReturn(view); when(view.template()).thenReturn("<input type='text' ng-model='abc'></input>"); when(view.displayValue()).thenReturn("First plugin"); }
public PluggableTaskPluginInfo pluginInfoFor(GoPluginDescriptor descriptor) { final TaskPreference[] tp = {null}; extension.doOnTask(descriptor.id(), (task, pluginDescriptor) -> tp[0] = new TaskPreference(task)); TaskConfig config = tp[0].getConfig(); TaskView view = tp[0].getView(); if (config == null) { throw new RuntimeException(format("Plugin[%s] returned null task configuration", descriptor.id())); } if (view == null) { throw new RuntimeException(format("Plugin[%s] returned null task view", descriptor.id())); } String displayName = view.displayValue(); PluggableInstanceSettings taskSettings = new PluggableInstanceSettings(configurations(config), new PluginView(view.template())); return new PluggableTaskPluginInfo(descriptor, displayName, taskSettings); }
@Test public void shouldRegisterViewEngineForPluggableTask() { TaskPreference taskPreference = mock(TaskPreference.class); TaskView view = mock(TaskView.class); when(taskPreference.getView()).thenReturn(view); when(view.template()).thenReturn("plugin-template-value"); when(view.displayValue()).thenReturn("Plugin display value"); PluggableTaskConfigStore.store().setPreferenceFor("plugin1", taskPreference); PluggableTask pluggableTask = new PluggableTask(new PluginConfiguration("plugin1", "2"), new Configuration()); PluggableViewModel<PluggableTask> pluggableTaskViewModel = registry.getViewModelFor(pluggableTask, "new"); assertEquals(PluggableTaskViewModel.class, pluggableTaskViewModel.getClass()); assertThat(pluggableTaskViewModel.getModel(), is(pluggableTask)); }
private PluggableViewModel<PluggableTask> getModelWithTaskTemplateHavingValue(final String templateContentValue) { when(taskPreference.getView()).thenReturn(new TaskView() { @Override public String displayValue() { return "view"; } @Override public String template() { return templateContentValue; } }); PluggableTask pluggableTask = new PluggableTask(new PluginConfiguration("plugin-1", "2"), new Configuration()); PluggableTaskViewModelFactory factory = new PluggableTaskViewModelFactory(); return factory.viewModelFor(pluggableTask, "new"); } }