Search in sources :

Example 21 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginServiceTest method shouldCheckForStaleRequestBeforeUpdatingPluginSettings.

@Test
public void shouldCheckForStaleRequestBeforeUpdatingPluginSettings() {
    PluginSettings pluginSettings = new PluginSettings("plugin-id-1");
    Username currentUser = new Username("admin");
    HttpLocalizedOperationResult result = new HttpLocalizedOperationResult();
    String md5 = "md5";
    when(entityHashingService.md5ForEntity(pluginSettings)).thenReturn("foo");
    pluginService.updatePluginSettings(currentUser, result, pluginSettings, md5);
    assertThat(result.httpCode(), is(412));
    assertThat(result.toString(), containsString("STALE_RESOURCE_CONFIG"));
}
Also used : HttpLocalizedOperationResult(com.thoughtworks.go.server.service.result.HttpLocalizedOperationResult) Username(com.thoughtworks.go.server.domain.Username) PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Example 22 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginServiceTest method shouldNotifyPluginThatPluginSettingsHaveChangedAfterSaving.

@Test
public void shouldNotifyPluginThatPluginSettingsHaveChangedAfterSaving() {
    String pluginId = "plugin-id-2";
    Map<String, String> parameterMap = m("p2-k1", "v1");
    PluginSettings pluginSettings = new PluginSettings(pluginId).populateSettingsMap(parameterMap);
    Username currentUser = new Username("admin");
    when(securityService.isUserAdmin(currentUser)).thenReturn(true);
    when(configRepoExtension.canHandlePlugin(pluginId)).thenReturn(true);
    when(configRepoExtension.validatePluginSettings(eq(pluginId), any(PluginSettingsConfiguration.class))).thenReturn(new ValidationResult());
    pluginService.savePluginSettings(currentUser, new HttpLocalizedOperationResult(), pluginSettings);
    Plugin plugin = new Plugin(pluginId, toJSON(parameterMap));
    verify(pluginDao).saveOrUpdate(plugin);
    verify(configRepoExtension).notifyPluginSettingsChange(pluginId, pluginSettings.getSettingsAsKeyValuePair());
}
Also used : HttpLocalizedOperationResult(com.thoughtworks.go.server.service.result.HttpLocalizedOperationResult) Username(com.thoughtworks.go.server.domain.Username) PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) PluginSettingsConfiguration(com.thoughtworks.go.plugin.access.common.settings.PluginSettingsConfiguration) ValidationResult(com.thoughtworks.go.plugin.api.response.validation.ValidationResult) NullPlugin(com.thoughtworks.go.domain.NullPlugin) Plugin(com.thoughtworks.go.domain.Plugin) Test(org.junit.Test)

Example 23 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginServiceTest method shouldNotSavePluginSettingsIfPluginReturnsValidationErrors.

@Test
public void shouldNotSavePluginSettingsIfPluginReturnsValidationErrors() {
    PluginSettingsMetadataStore.getInstance().addMetadataFor("some-plugin", PluginConstants.CONFIG_REPO_EXTENSION, null, null);
    PluginSettings pluginSettings = new PluginSettings("some-plugin");
    Username currentUser = new Username("admin");
    HttpLocalizedOperationResult result = new HttpLocalizedOperationResult();
    when(securityService.isUserAdmin(currentUser)).thenReturn(true);
    when(configRepoExtension.canHandlePlugin("some-plugin")).thenReturn(true);
    ValidationResult validationResult = new ValidationResult();
    validationResult.addError(new ValidationError("foo", "foo is a required field"));
    when(configRepoExtension.validatePluginSettings(eq("some-plugin"), any(PluginSettingsConfiguration.class))).thenReturn(validationResult);
    pluginService.savePluginSettings(currentUser, result, pluginSettings);
    assertThat(result.httpCode(), is(422));
    assertThat(pluginSettings.errors().size(), is(1));
    assertThat(pluginSettings.getErrorFor("foo"), is(Arrays.asList("foo is a required field")));
}
Also used : HttpLocalizedOperationResult(com.thoughtworks.go.server.service.result.HttpLocalizedOperationResult) Username(com.thoughtworks.go.server.domain.Username) PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) ValidationError(com.thoughtworks.go.plugin.api.response.validation.ValidationError) PluginSettingsConfiguration(com.thoughtworks.go.plugin.access.common.settings.PluginSettingsConfiguration) ValidationResult(com.thoughtworks.go.plugin.api.response.validation.ValidationResult) Test(org.junit.Test)

Example 24 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginServiceTest method shouldCallValidationOnPlugin.

@Test
public void shouldCallValidationOnPlugin() throws Exception {
    for (GoPluginExtension extension : extensions) {
        String pluginId = UUID.randomUUID().toString();
        PluginSettingsMetadataStore.getInstance().addMetadataFor(pluginId, extension.extensionName(), null, null);
        when(extension.canHandlePlugin(pluginId)).thenReturn(true);
        when(extension.validatePluginSettings(eq(pluginId), any(PluginSettingsConfiguration.class))).thenReturn(new ValidationResult());
        PluginSettings pluginSettings = new PluginSettings(pluginId);
        pluginService.validatePluginSettingsFor(pluginSettings);
        verify(extension).validatePluginSettings(eq(pluginId), any(PluginSettingsConfiguration.class));
    }
}
Also used : GoPluginExtension(com.thoughtworks.go.plugin.access.common.settings.GoPluginExtension) PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) PluginSettingsConfiguration(com.thoughtworks.go.plugin.access.common.settings.PluginSettingsConfiguration) ValidationResult(com.thoughtworks.go.plugin.api.response.validation.ValidationResult) Test(org.junit.Test)

Example 25 with PluginSettings

use of com.thoughtworks.go.server.domain.PluginSettings in project gocd by gocd.

the class PluginServiceTest method shouldTalkToPluginForPluginSettingsValidation_ConfigRepo.

@Test
public void shouldTalkToPluginForPluginSettingsValidation_ConfigRepo() {
    PluginSettingsMetadataStore.getInstance().addMetadataFor("plugin-id-4", PluginConstants.CONFIG_REPO_EXTENSION, null, null);
    when(configRepoExtension.isConfigRepoPlugin("plugin-id-4")).thenReturn(true);
    when(configRepoExtension.canHandlePlugin("plugin-id-4")).thenReturn(true);
    when(configRepoExtension.validatePluginSettings(eq("plugin-id-4"), any(PluginSettingsConfiguration.class))).thenReturn(new ValidationResult());
    PluginSettings pluginSettings = new PluginSettings("plugin-id-4");
    pluginService.validatePluginSettingsFor(pluginSettings);
    verify(configRepoExtension).validatePluginSettings(eq("plugin-id-4"), any(PluginSettingsConfiguration.class));
}
Also used : PluginSettings(com.thoughtworks.go.server.domain.PluginSettings) PluginSettingsConfiguration(com.thoughtworks.go.plugin.access.common.settings.PluginSettingsConfiguration) ValidationResult(com.thoughtworks.go.plugin.api.response.validation.ValidationResult) Test(org.junit.Test)

Aggregations

PluginSettings (com.thoughtworks.go.server.domain.PluginSettings)26 Test (org.junit.Test)20 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)10 PluginSettingsConfiguration (com.thoughtworks.go.plugin.access.common.settings.PluginSettingsConfiguration)9 ValidationResult (com.thoughtworks.go.plugin.api.response.validation.ValidationResult)9 NullPlugin (com.thoughtworks.go.domain.NullPlugin)8 Plugin (com.thoughtworks.go.domain.Plugin)8 Username (com.thoughtworks.go.server.domain.Username)8 HttpLocalizedOperationResult (com.thoughtworks.go.server.service.result.HttpLocalizedOperationResult)8 GoPluginExtension (com.thoughtworks.go.plugin.access.common.settings.GoPluginExtension)3 DefaultGoApiResponse (com.thoughtworks.go.plugin.api.response.DefaultGoApiResponse)2 ValidationError (com.thoughtworks.go.plugin.api.response.validation.ValidationError)2 LinkedHashMap (java.util.LinkedHashMap)1