DTO Config Mapper: Adds tests for all properties

This commit is contained in:
Johannes Schnatterer
2018-07-31 13:43:43 +02:00
parent c7ce170513
commit 9aaca22942
3 changed files with 57 additions and 27 deletions

View File

@@ -51,8 +51,6 @@ public class GlobalConfigDtoToScmConfigurationMapperTest {
assertEquals("https://plug.ins" , config.getPluginUrl());
assertEquals(40 , config.getLoginAttemptLimitTimeout());
assertTrue(config.isEnabledXsrfProtection());
}
private GlobalConfigDto createDefaultDto() {

View File

@@ -20,8 +20,6 @@ import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Arrays;
import java.util.HashSet;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -123,28 +121,10 @@ public class GlobalConfigResourceTest {
dispatcher.invoke(request, response);
}
public static ScmConfiguration createConfiguration() {
private static ScmConfiguration createConfiguration() {
ScmConfiguration scmConfiguration = new ScmConfiguration();
scmConfiguration.setProxyPassword("heartOfGold");
scmConfiguration.setProxyPort(1234);
scmConfiguration.setProxyServer("proxyserver");
scmConfiguration.setProxyUser("trillian");
scmConfiguration.setEnableProxy(true);
scmConfiguration.setRealmDescription("description");
scmConfiguration.setEnableRepositoryArchive(true);
scmConfiguration.setDisableGroupingGrid(true);
scmConfiguration.setDateFormat("dd");
scmConfiguration.setAnonymousAccessEnabled(true);
scmConfiguration.setAdminGroups(new HashSet<>(Arrays.asList("group")));
scmConfiguration.setAdminUsers(new HashSet<>(Arrays.asList("user1")));
scmConfiguration.setBaseUrl("baseurl");
scmConfiguration.setForceBaseUrl(true);
scmConfiguration.setLoginAttemptLimit(1);
scmConfiguration.setProxyExcludes(new HashSet<>(Arrays.asList("arthur", "dent")));
scmConfiguration.setSkipFailedAuthenticators(true);
scmConfiguration.setPluginUrl("pluginurl");
scmConfiguration.setLoginAttemptLimitTimeout(2);
scmConfiguration.setEnabledXsrfProtection(true);
return scmConfiguration;
}
}

View File

@@ -8,21 +8,27 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.internal.util.collections.Sets;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.security.Role;
import java.net.URI;
import java.util.Arrays;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import static sonia.scm.api.v2.resources.GlobalConfigResourceTest.createConfiguration;
public class ScmConfigurationToGlobalConfigDtoMapperTest {
private URI baseUri = URI.create("http://example.com/base/");
private String[] expectedUsers = { "trillian", "arthur" };
private String[] expectedGroups = { "admin", "plebs" };
private String[] expectedExcludes = { "ex", "clude" };
@SuppressWarnings("unused") // Is injected
private ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@@ -51,10 +57,31 @@ public class ScmConfigurationToGlobalConfigDtoMapperTest {
public void shouldMapFields() {
ScmConfiguration config = createConfiguration();
when(subject.isPermitted("configuration:write:global")).thenReturn(true);
GlobalConfigDto dto = mapper.map(config);
assertEquals("baseurl", dto.getBaseUrl());
assertEquals("heartOfGold" , dto.getProxyPassword());
assertEquals(1234 , dto.getProxyPort());
assertEquals("proxyserver" , dto.getProxyServer());
assertEquals("trillian" , dto.getProxyUser());
assertTrue(dto.isEnableProxy());
assertEquals("description" , dto.getRealmDescription());
assertTrue(dto.isEnableRepositoryArchive());
assertTrue(dto.isDisableGroupingGrid());
assertEquals("dd" , dto.getDateFormat());
assertTrue(dto.isAnonymousAccessEnabled());
assertTrue("adminGroups", dto.getAdminGroups().containsAll(Arrays.asList(expectedGroups)));
assertTrue("adminUsers", dto.getAdminUsers().containsAll(Arrays.asList(expectedUsers)));
assertEquals("baseurl" , dto.getBaseUrl());
assertTrue(dto.isForceBaseUrl());
assertEquals(1 , dto.getLoginAttemptLimit());
assertTrue("proxyExcludes", dto.getProxyExcludes().containsAll(Arrays.asList(expectedExcludes)));
assertTrue(dto.isSkipFailedAuthenticators());
assertEquals("pluginurl" , dto.getPluginUrl());
assertEquals(2 , dto.getLoginAttemptLimitTimeout());
assertTrue(dto.isEnabledXsrfProtection());
assertEquals(expectedBaseUri.toString(), dto.getLinks().getLinkBy("self").get().getHref());
assertEquals(expectedBaseUri.toString(), dto.getLinks().getLinkBy("update").get().getHref());
}
@@ -71,4 +98,29 @@ public class ScmConfigurationToGlobalConfigDtoMapperTest {
assertFalse(dto.getLinks().hasLink("update"));
}
private ScmConfiguration createConfiguration() {
ScmConfiguration config = new ScmConfiguration();
config.setProxyPassword("heartOfGold");
config.setProxyPort(1234);
config.setProxyServer("proxyserver");
config.setProxyUser("trillian");
config.setEnableProxy(true);
config.setRealmDescription("description");
config.setEnableRepositoryArchive(true);
config.setDisableGroupingGrid(true);
config.setDateFormat("dd");
config.setAnonymousAccessEnabled(true);
config.setAdminGroups(Sets.newSet(expectedGroups));
config.setAdminUsers(Sets.newSet(expectedUsers));
config.setBaseUrl("baseurl");
config.setForceBaseUrl(true);
config.setLoginAttemptLimit(1);
config.setProxyExcludes(Sets.newSet(expectedExcludes));
config.setSkipFailedAuthenticators(true);
config.setPluginUrl("pluginurl");
config.setLoginAttemptLimitTimeout(2);
config.setEnabledXsrfProtection(true);
return config;
}
}