Compute base url in webapp

This commit is contained in:
René Pfeuffer
2018-09-10 11:59:21 +02:00
parent 6bc41cee0a
commit 8c675f5dd8
8 changed files with 21 additions and 10 deletions

View File

@@ -3,7 +3,7 @@ package sonia.scm.api.v2.resources;
import sonia.scm.repository.Repository;
import sonia.scm.repository.api.ScmProtocol;
import javax.ws.rs.core.UriInfo;
import java.net.URI;
class MockScmProtocol implements ScmProtocol {
private final String type;
@@ -20,7 +20,7 @@ class MockScmProtocol implements ScmProtocol {
}
@Override
public String getUrl(Repository repository, UriInfo uriInfo) {
public String getUrl(Repository repository, URI baseUri) {
return protocol;
}
}

View File

@@ -24,6 +24,7 @@ import sonia.scm.repository.api.RepositoryServiceFactory;
import sonia.scm.web.VndMediaType;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.UriInfo;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -71,6 +72,8 @@ public class RepositoryRootResourceTest {
private RepositoryService service;
@Mock
private UriInfoStore uriInfoStore;
@Mock
private UriInfo uriInfo;
private final URI baseUri = URI.create("/");
@@ -89,6 +92,8 @@ public class RepositoryRootResourceTest {
RepositoryCollectionResource repositoryCollectionResource = new RepositoryCollectionResource(repositoryManager, repositoryCollectionToDtoMapper, dtoToRepositoryMapper, resourceLinks);
RepositoryRootResource repositoryRootResource = new RepositoryRootResource(MockProvider.of(repositoryResource), MockProvider.of(repositoryCollectionResource));
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
when(uriInfoStore.get()).thenReturn(uriInfo);
when(uriInfo.getBaseUri()).thenReturn(URI.create("/x/y"));
dispatcher = createDispatcher(repositoryRootResource);
}

View File

@@ -18,6 +18,7 @@ import sonia.scm.repository.api.RepositoryService;
import sonia.scm.repository.api.RepositoryServiceFactory;
import sonia.scm.repository.api.ScmProtocol;
import javax.ws.rs.core.UriInfo;
import java.net.URI;
import static java.util.Arrays.asList;
@@ -49,6 +50,8 @@ public class RepositoryToRepositoryDtoMapperTest {
private RepositoryService repositoryService;
@Mock
private UriInfoStore uriInfoStore;
@Mock
private UriInfo uriInfo;
@InjectMocks
private RepositoryToRepositoryDtoMapperImpl mapper;
@@ -59,6 +62,8 @@ public class RepositoryToRepositoryDtoMapperTest {
when(serviceFactory.create(any(Repository.class))).thenReturn(repositoryService);
when(repositoryService.isSupported(any(Command.class))).thenReturn(true);
when(repositoryService.getSupportedProtocols()).thenReturn(emptySet());
when(uriInfoStore.get()).thenReturn(uriInfo);
when(uriInfo.getBaseUri()).thenReturn(URI.create("/x/y"));
}
@After