mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-07-04 15:09:28 +02:00
Create resource for repositories of one namespace
This commit is contained in:
@@ -133,6 +133,7 @@ public class RepositoryRootResourceTest extends RepositoryTestBase {
|
||||
super.manager = repositoryManager;
|
||||
RepositoryCollectionToDtoMapper repositoryCollectionToDtoMapper = new RepositoryCollectionToDtoMapper(repositoryToDtoMapper, resourceLinks);
|
||||
super.repositoryCollectionResource = new RepositoryCollectionResource(repositoryManager, repositoryCollectionToDtoMapper, dtoToRepositoryMapper, resourceLinks, repositoryInitializer);
|
||||
super.repositoryNamespaceResource = new RepositoryNamespaceResource(repositoryManager, repositoryCollectionToDtoMapper);
|
||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
||||
when(scmPathInfoStore.get()).thenReturn(uriInfo);
|
||||
@@ -206,6 +207,40 @@ public class RepositoryRootResourceTest extends RepositoryTestBase {
|
||||
assertFalse(filterCaptor.getValue().test(new Repository("rep", "rep", "x", "x")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreateFilterForNamespace() throws URISyntaxException {
|
||||
PageResult<Repository> singletonPageResult = createSingletonPageResult(mockRepository("space", "repo"));
|
||||
when(repositoryManager.getPage(filterCaptor.capture(), any(), eq(0), eq(10))).thenReturn(singletonPageResult);
|
||||
when(configuration.getNamespaceStrategy()).thenReturn("CustomNamespaceStrategy");
|
||||
|
||||
MockHttpRequest request = MockHttpRequest.get("/" + RepositoryRootResource.REPOSITORIES_PATH_V2 + "space");
|
||||
MockHttpResponse response = new MockHttpResponse();
|
||||
|
||||
dispatcher.invoke(request, response);
|
||||
|
||||
assertEquals(SC_OK, response.getStatus());
|
||||
assertTrue(filterCaptor.getValue().test(new Repository("x", "git", "space", "repo")));
|
||||
assertFalse(filterCaptor.getValue().test(new Repository("x", "git", "spaceX", "repository")));
|
||||
assertFalse(filterCaptor.getValue().test(new Repository("x", "git", "x", "space")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreateFilterForNamespaceWithQuery() throws URISyntaxException {
|
||||
PageResult<Repository> singletonPageResult = createSingletonPageResult(mockRepository("space", "repo"));
|
||||
when(repositoryManager.getPage(filterCaptor.capture(), any(), eq(0), eq(10))).thenReturn(singletonPageResult);
|
||||
when(configuration.getNamespaceStrategy()).thenReturn("CustomNamespaceStrategy");
|
||||
|
||||
MockHttpRequest request = MockHttpRequest.get("/" + RepositoryRootResource.REPOSITORIES_PATH_V2 + "space?q=Rep");
|
||||
MockHttpResponse response = new MockHttpResponse();
|
||||
|
||||
dispatcher.invoke(request, response);
|
||||
|
||||
assertEquals(SC_OK, response.getStatus());
|
||||
assertTrue(filterCaptor.getValue().test(new Repository("x", "git", "space", "repo")));
|
||||
assertFalse(filterCaptor.getValue().test(new Repository("x", "git", "space", "other")));
|
||||
assertFalse(filterCaptor.getValue().test(new Repository("x", "git", "Rep", "Repository")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldHandleUpdateForNotExistingRepository() throws URISyntaxException, IOException {
|
||||
URL url = Resources.getResource("sonia/scm/api/v2/repository-test-update.json");
|
||||
|
||||
@@ -44,6 +44,7 @@ abstract class RepositoryTestBase {
|
||||
FileHistoryRootResource fileHistoryRootResource;
|
||||
IncomingRootResource incomingRootResource;
|
||||
RepositoryCollectionResource repositoryCollectionResource;
|
||||
RepositoryNamespaceResource repositoryNamespaceResource;
|
||||
AnnotateResource annotateResource;
|
||||
|
||||
RepositoryRootResource getRepositoryRootResource() {
|
||||
@@ -65,6 +66,7 @@ abstract class RepositoryTestBase {
|
||||
dtoToRepositoryMapper,
|
||||
manager,
|
||||
repositoryBasedResourceProvider)),
|
||||
of(repositoryNamespaceResource),
|
||||
of(repositoryCollectionResource));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user