diff --git a/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyGroupClientHandlerITCase.java b/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyGroupClientHandlerITCase.java index 0650564741..08899945ad 100644 --- a/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyGroupClientHandlerITCase.java +++ b/scm-clients/scm-client-impl/src/test/java/sonia/scm/client/it/JerseyGroupClientHandlerITCase.java @@ -35,11 +35,14 @@ package sonia.scm.client.it; //~--- non-JDK imports -------------------------------------------------------- +import org.junit.Test; import sonia.scm.client.ClientHandler; +import sonia.scm.client.GroupClientHandler; import sonia.scm.client.JerseyClientSession; -import sonia.scm.client.it.AbstractClientHandlerTestBase.ModifyTest; import sonia.scm.group.Group; +import static sonia.scm.client.it.ClientTestUtil.createAdminSession; + /** * * @author Sebastian Sdorra @@ -99,4 +102,24 @@ public class JerseyGroupClientHandlerITCase { return new Group("xml", "group-" + number); } + + /** + * Tests crud operations with a group which name contains spaces. + * + * @see manager; + + @Test + public void testLocation() throws URISyntaxException { + URI base = new URI("https://scm.scm-manager.org/"); + + TestManagerResource resource = new TestManagerResource(manager); + when(uriInfo.getAbsolutePath()).thenReturn(base); + + URI uri = resource.location(uriInfo, "special-group"); + assertEquals(new URI("https://scm.scm-manager.org/groups/special-group"), uri); + } + + @Test + public void testLocationWithSpaces() throws URISyntaxException { + URI base = new URI("https://scm.scm-manager.org/"); + + TestManagerResource resource = new TestManagerResource(manager); + when(uriInfo.getAbsolutePath()).thenReturn(base); + + URI uri = resource.location(uriInfo, "Scm Special Group"); + assertEquals(new URI("https://scm.scm-manager.org/groups/Scm%20Special%20Group"), uri); + } + + private static class TestManagerResource extends AbstractManagerResource { + + private TestManagerResource(Manager manager) { + super(manager); + } + + @Override + protected GenericEntity> createGenericEntity(Collection items) { + return null; + } + + @Override + protected String getId(Group group) { + return group.getId(); + } + + @Override + protected String getPathPart() { + return "groups"; + } + } +}