mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-15 09:46:16 +01:00
Encapsulate dependencies for repository resource
This commit is contained in:
@@ -0,0 +1,105 @@
|
|||||||
|
/*
|
||||||
|
* MIT License
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020-present Cloudogu GmbH and Contributors
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Provider;
|
||||||
|
|
||||||
|
public class RepositoryBasedResourceProvider {
|
||||||
|
private final Provider<TagRootResource> tagRootResource;
|
||||||
|
private final Provider<BranchRootResource> branchRootResource;
|
||||||
|
private final Provider<ChangesetRootResource> changesetRootResource;
|
||||||
|
private final Provider<SourceRootResource> sourceRootResource;
|
||||||
|
private final Provider<ContentResource> contentResource;
|
||||||
|
private final Provider<RepositoryPermissionRootResource> permissionRootResource;
|
||||||
|
private final Provider<DiffRootResource> diffRootResource;
|
||||||
|
private final Provider<ModificationsRootResource> modificationsRootResource;
|
||||||
|
private final Provider<FileHistoryRootResource> fileHistoryRootResource;
|
||||||
|
private final Provider<IncomingRootResource> incomingRootResource;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public RepositoryBasedResourceProvider(
|
||||||
|
Provider<TagRootResource> tagRootResource,
|
||||||
|
Provider<BranchRootResource> branchRootResource,
|
||||||
|
Provider<ChangesetRootResource> changesetRootResource,
|
||||||
|
Provider<SourceRootResource> sourceRootResource,
|
||||||
|
Provider<ContentResource> contentResource,
|
||||||
|
Provider<RepositoryPermissionRootResource> permissionRootResource,
|
||||||
|
Provider<DiffRootResource> diffRootResource,
|
||||||
|
Provider<ModificationsRootResource> modificationsRootResource,
|
||||||
|
Provider<FileHistoryRootResource> fileHistoryRootResource,
|
||||||
|
Provider<IncomingRootResource> incomingRootResource) {
|
||||||
|
this.tagRootResource = tagRootResource;
|
||||||
|
this.branchRootResource = branchRootResource;
|
||||||
|
this.changesetRootResource = changesetRootResource;
|
||||||
|
this.sourceRootResource = sourceRootResource;
|
||||||
|
this.contentResource = contentResource;
|
||||||
|
this.permissionRootResource = permissionRootResource;
|
||||||
|
this.diffRootResource = diffRootResource;
|
||||||
|
this.modificationsRootResource = modificationsRootResource;
|
||||||
|
this.fileHistoryRootResource = fileHistoryRootResource;
|
||||||
|
this.incomingRootResource = incomingRootResource;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TagRootResource getTagRootResource() {
|
||||||
|
return tagRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BranchRootResource getBranchRootResource() {
|
||||||
|
return branchRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChangesetRootResource getChangesetRootResource() {
|
||||||
|
return changesetRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SourceRootResource getSourceRootResource() {
|
||||||
|
return sourceRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContentResource getContentResource() {
|
||||||
|
return contentResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public RepositoryPermissionRootResource getPermissionRootResource() {
|
||||||
|
return permissionRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DiffRootResource getDiffRootResource() {
|
||||||
|
return diffRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ModificationsRootResource getModificationsRootResource() {
|
||||||
|
return modificationsRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileHistoryRootResource getFileHistoryRootResource() {
|
||||||
|
return fileHistoryRootResource.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IncomingRootResource getIncomingRootResource() {
|
||||||
|
return incomingRootResource.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sonia.scm.api.v2.resources;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@@ -58,46 +58,19 @@ public class RepositoryResource {
|
|||||||
|
|
||||||
private final RepositoryManager manager;
|
private final RepositoryManager manager;
|
||||||
private final SingleResourceManagerAdapter<Repository, RepositoryDto> adapter;
|
private final SingleResourceManagerAdapter<Repository, RepositoryDto> adapter;
|
||||||
private final Provider<TagRootResource> tagRootResource;
|
private final RepositoryBasedResourceProvider resourceProvider;
|
||||||
private final Provider<BranchRootResource> branchRootResource;
|
|
||||||
private final Provider<ChangesetRootResource> changesetRootResource;
|
|
||||||
private final Provider<SourceRootResource> sourceRootResource;
|
|
||||||
private final Provider<ContentResource> contentResource;
|
|
||||||
private final Provider<RepositoryPermissionRootResource> permissionRootResource;
|
|
||||||
private final Provider<DiffRootResource> diffRootResource;
|
|
||||||
private final Provider<ModificationsRootResource> modificationsRootResource;
|
|
||||||
private final Provider<FileHistoryRootResource> fileHistoryRootResource;
|
|
||||||
private final Provider<IncomingRootResource> incomingRootResource;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RepositoryResource(
|
public RepositoryResource(
|
||||||
RepositoryToRepositoryDtoMapper repositoryToDtoMapper,
|
RepositoryToRepositoryDtoMapper repositoryToDtoMapper,
|
||||||
RepositoryDtoToRepositoryMapper dtoToRepositoryMapper, RepositoryManager manager,
|
RepositoryDtoToRepositoryMapper dtoToRepositoryMapper, RepositoryManager manager,
|
||||||
Provider<TagRootResource> tagRootResource,
|
RepositoryBasedResourceProvider resourceProvider
|
||||||
Provider<BranchRootResource> branchRootResource,
|
|
||||||
Provider<ChangesetRootResource> changesetRootResource,
|
|
||||||
Provider<SourceRootResource> sourceRootResource, Provider<ContentResource> contentResource,
|
|
||||||
Provider<RepositoryPermissionRootResource> permissionRootResource,
|
|
||||||
Provider<DiffRootResource> diffRootResource,
|
|
||||||
Provider<ModificationsRootResource> modificationsRootResource,
|
|
||||||
Provider<FileHistoryRootResource> fileHistoryRootResource,
|
|
||||||
Provider<IncomingRootResource> incomingRootResource
|
|
||||||
) {
|
) {
|
||||||
this.dtoToRepositoryMapper = dtoToRepositoryMapper;
|
this.dtoToRepositoryMapper = dtoToRepositoryMapper;
|
||||||
this.manager = manager;
|
this.manager = manager;
|
||||||
this.repositoryToDtoMapper = repositoryToDtoMapper;
|
this.repositoryToDtoMapper = repositoryToDtoMapper;
|
||||||
this.adapter = new SingleResourceManagerAdapter<>(manager, Repository.class);
|
this.adapter = new SingleResourceManagerAdapter<>(manager, Repository.class);
|
||||||
this.tagRootResource = tagRootResource;
|
this.resourceProvider = resourceProvider;
|
||||||
this.branchRootResource = branchRootResource;
|
|
||||||
this.changesetRootResource = changesetRootResource;
|
|
||||||
this.sourceRootResource = sourceRootResource;
|
|
||||||
this.contentResource = contentResource;
|
|
||||||
this.permissionRootResource = permissionRootResource;
|
|
||||||
this.diffRootResource = diffRootResource;
|
|
||||||
this.modificationsRootResource = modificationsRootResource;
|
|
||||||
this.fileHistoryRootResource = fileHistoryRootResource;
|
|
||||||
this.incomingRootResource = incomingRootResource;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -211,52 +184,52 @@ public class RepositoryResource {
|
|||||||
|
|
||||||
@Path("tags/")
|
@Path("tags/")
|
||||||
public TagRootResource tags() {
|
public TagRootResource tags() {
|
||||||
return tagRootResource.get();
|
return resourceProvider.getTagRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("diff/")
|
@Path("diff/")
|
||||||
public DiffRootResource diff() {
|
public DiffRootResource diff() {
|
||||||
return diffRootResource.get();
|
return resourceProvider.getDiffRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("branches/")
|
@Path("branches/")
|
||||||
public BranchRootResource branches() {
|
public BranchRootResource branches() {
|
||||||
return branchRootResource.get();
|
return resourceProvider.getBranchRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("changesets/")
|
@Path("changesets/")
|
||||||
public ChangesetRootResource changesets() {
|
public ChangesetRootResource changesets() {
|
||||||
return changesetRootResource.get();
|
return resourceProvider.getChangesetRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("history/")
|
@Path("history/")
|
||||||
public FileHistoryRootResource history() {
|
public FileHistoryRootResource history() {
|
||||||
return fileHistoryRootResource.get();
|
return resourceProvider.getFileHistoryRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("sources/")
|
@Path("sources/")
|
||||||
public SourceRootResource sources() {
|
public SourceRootResource sources() {
|
||||||
return sourceRootResource.get();
|
return resourceProvider.getSourceRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("content/")
|
@Path("content/")
|
||||||
public ContentResource content() {
|
public ContentResource content() {
|
||||||
return contentResource.get();
|
return resourceProvider.getContentResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("permissions/")
|
@Path("permissions/")
|
||||||
public RepositoryPermissionRootResource permissions() {
|
public RepositoryPermissionRootResource permissions() {
|
||||||
return permissionRootResource.get();
|
return resourceProvider.getPermissionRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("modifications/")
|
@Path("modifications/")
|
||||||
public ModificationsRootResource modifications() {
|
public ModificationsRootResource modifications() {
|
||||||
return modificationsRootResource.get();
|
return resourceProvider.getModificationsRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Path("incoming/")
|
@Path("incoming/")
|
||||||
public IncomingRootResource incoming() {
|
public IncomingRootResource incoming() {
|
||||||
return incomingRootResource.get();
|
return resourceProvider.getIncomingRootResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Supplier<Repository> loadBy(String namespace, String name) {
|
private Supplier<Repository> loadBy(String namespace, String name) {
|
||||||
|
|||||||
@@ -103,8 +103,6 @@ public class BranchRootResourceTest extends RepositoryTestBase {
|
|||||||
|
|
||||||
private BranchChangesetCollectionToDtoMapper changesetCollectionToDtoMapper;
|
private BranchChangesetCollectionToDtoMapper changesetCollectionToDtoMapper;
|
||||||
|
|
||||||
private BranchRootResource branchRootResource;
|
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private BranchCollectionToDtoMapper branchCollectionToDtoMapper;
|
private BranchCollectionToDtoMapper branchCollectionToDtoMapper;
|
||||||
|
|
||||||
@@ -126,7 +124,6 @@ public class BranchRootResourceTest extends RepositoryTestBase {
|
|||||||
changesetCollectionToDtoMapper = new BranchChangesetCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
changesetCollectionToDtoMapper = new BranchChangesetCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
||||||
BranchCollectionToDtoMapper branchCollectionToDtoMapper = new BranchCollectionToDtoMapper(branchToDtoMapper, resourceLinks);
|
BranchCollectionToDtoMapper branchCollectionToDtoMapper = new BranchCollectionToDtoMapper(branchToDtoMapper, resourceLinks);
|
||||||
branchRootResource = new BranchRootResource(serviceFactory, branchToDtoMapper, branchCollectionToDtoMapper, changesetCollectionToDtoMapper, resourceLinks);
|
branchRootResource = new BranchRootResource(serviceFactory, branchToDtoMapper, branchCollectionToDtoMapper, changesetCollectionToDtoMapper, resourceLinks);
|
||||||
super.branchRootResource = Providers.of(branchRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
||||||
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
||||||
|
|||||||
@@ -91,8 +91,6 @@ public class ChangesetRootResourceTest extends RepositoryTestBase {
|
|||||||
@InjectMocks
|
@InjectMocks
|
||||||
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
||||||
|
|
||||||
private ChangesetRootResource changesetRootResource;
|
|
||||||
|
|
||||||
private final Subject subject = mock(Subject.class);
|
private final Subject subject = mock(Subject.class);
|
||||||
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
||||||
|
|
||||||
@@ -100,7 +98,6 @@ public class ChangesetRootResourceTest extends RepositoryTestBase {
|
|||||||
public void prepareEnvironment() {
|
public void prepareEnvironment() {
|
||||||
changesetCollectionToDtoMapper = new ChangesetCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
changesetCollectionToDtoMapper = new ChangesetCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
||||||
changesetRootResource = new ChangesetRootResource(serviceFactory, changesetCollectionToDtoMapper, changesetToChangesetDtoMapper);
|
changesetRootResource = new ChangesetRootResource(serviceFactory, changesetCollectionToDtoMapper, changesetToChangesetDtoMapper);
|
||||||
super.changesetRootResource = Providers.of(changesetRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
||||||
when(serviceFactory.create(any(Repository.class))).thenReturn(repositoryService);
|
when(serviceFactory.create(any(Repository.class))).thenReturn(repositoryService);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sonia.scm.api.v2.resources;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
|
|
||||||
@@ -90,9 +90,6 @@ public class DiffResourceTest extends RepositoryTestBase {
|
|||||||
@Mock
|
@Mock
|
||||||
private DiffResultToDiffResultDtoMapper diffResultToDiffResultDtoMapper;
|
private DiffResultToDiffResultDtoMapper diffResultToDiffResultDtoMapper;
|
||||||
|
|
||||||
private DiffRootResource diffRootResource;
|
|
||||||
|
|
||||||
|
|
||||||
private final Subject subject = mock(Subject.class);
|
private final Subject subject = mock(Subject.class);
|
||||||
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
||||||
|
|
||||||
@@ -100,7 +97,6 @@ public class DiffResourceTest extends RepositoryTestBase {
|
|||||||
@Before
|
@Before
|
||||||
public void prepareEnvironment() {
|
public void prepareEnvironment() {
|
||||||
diffRootResource = new DiffRootResource(serviceFactory, diffResultToDiffResultDtoMapper);
|
diffRootResource = new DiffRootResource(serviceFactory, diffResultToDiffResultDtoMapper);
|
||||||
super.diffRootResource = Providers.of(diffRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
||||||
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
||||||
|
|||||||
@@ -92,8 +92,6 @@ public class FileHistoryResourceTest extends RepositoryTestBase {
|
|||||||
@InjectMocks
|
@InjectMocks
|
||||||
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
||||||
|
|
||||||
private FileHistoryRootResource fileHistoryRootResource;
|
|
||||||
|
|
||||||
private RestDispatcher dispatcher = new RestDispatcher();
|
private RestDispatcher dispatcher = new RestDispatcher();
|
||||||
|
|
||||||
private final Subject subject = mock(Subject.class);
|
private final Subject subject = mock(Subject.class);
|
||||||
@@ -103,7 +101,6 @@ public class FileHistoryResourceTest extends RepositoryTestBase {
|
|||||||
public void prepareEnvironment() {
|
public void prepareEnvironment() {
|
||||||
fileHistoryCollectionToDtoMapper = new FileHistoryCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
fileHistoryCollectionToDtoMapper = new FileHistoryCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
||||||
fileHistoryRootResource = new FileHistoryRootResource(serviceFactory, fileHistoryCollectionToDtoMapper);
|
fileHistoryRootResource = new FileHistoryRootResource(serviceFactory, fileHistoryCollectionToDtoMapper);
|
||||||
super.fileHistoryRootResource = Providers.of(fileHistoryRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
||||||
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
||||||
|
|||||||
@@ -110,9 +110,6 @@ public class IncomingRootResourceTest extends RepositoryTestBase {
|
|||||||
@InjectMocks
|
@InjectMocks
|
||||||
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
||||||
|
|
||||||
private IncomingRootResource incomingRootResource;
|
|
||||||
|
|
||||||
|
|
||||||
private final Subject subject = mock(Subject.class);
|
private final Subject subject = mock(Subject.class);
|
||||||
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
||||||
|
|
||||||
@@ -121,7 +118,6 @@ public class IncomingRootResourceTest extends RepositoryTestBase {
|
|||||||
public void prepareEnvironment() {
|
public void prepareEnvironment() {
|
||||||
incomingChangesetCollectionToDtoMapper = new IncomingChangesetCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
incomingChangesetCollectionToDtoMapper = new IncomingChangesetCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
||||||
incomingRootResource = new IncomingRootResource(serviceFactory, incomingChangesetCollectionToDtoMapper, diffResultToDiffResultDtoMapper);
|
incomingRootResource = new IncomingRootResource(serviceFactory, incomingChangesetCollectionToDtoMapper, diffResultToDiffResultDtoMapper);
|
||||||
super.incomingRootResource = Providers.of(incomingRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
||||||
when(serviceFactory.create(REPOSITORY)).thenReturn(repositoryService);
|
when(serviceFactory.create(REPOSITORY)).thenReturn(repositoryService);
|
||||||
|
|||||||
@@ -88,9 +88,6 @@ public class ModificationsResourceTest extends RepositoryTestBase {
|
|||||||
@InjectMocks
|
@InjectMocks
|
||||||
private ModificationsToDtoMapperImpl modificationsToDtoMapper;
|
private ModificationsToDtoMapperImpl modificationsToDtoMapper;
|
||||||
|
|
||||||
private ModificationsRootResource modificationsRootResource;
|
|
||||||
|
|
||||||
|
|
||||||
private final Subject subject = mock(Subject.class);
|
private final Subject subject = mock(Subject.class);
|
||||||
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
||||||
|
|
||||||
@@ -98,7 +95,6 @@ public class ModificationsResourceTest extends RepositoryTestBase {
|
|||||||
@Before
|
@Before
|
||||||
public void prepareEnvironment() {
|
public void prepareEnvironment() {
|
||||||
modificationsRootResource = new ModificationsRootResource(serviceFactory, modificationsToDtoMapper);
|
modificationsRootResource = new ModificationsRootResource(serviceFactory, modificationsToDtoMapper);
|
||||||
super.modificationsRootResource = Providers.of(modificationsRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
||||||
when(serviceFactory.create(any(Repository.class))).thenReturn(repositoryService);
|
when(serviceFactory.create(any(Repository.class))).thenReturn(repositoryService);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sonia.scm.api.v2.resources;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
@@ -144,8 +144,6 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
|
|||||||
|
|
||||||
private RepositoryPermissionCollectionToDtoMapper repositoryPermissionCollectionToDtoMapper;
|
private RepositoryPermissionCollectionToDtoMapper repositoryPermissionCollectionToDtoMapper;
|
||||||
|
|
||||||
private RepositoryPermissionRootResource repositoryPermissionRootResource;
|
|
||||||
|
|
||||||
private final Subject subject = mock(Subject.class);
|
private final Subject subject = mock(Subject.class);
|
||||||
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
||||||
|
|
||||||
@@ -154,8 +152,7 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
|
|||||||
public void prepareEnvironment() {
|
public void prepareEnvironment() {
|
||||||
initMocks(this);
|
initMocks(this);
|
||||||
repositoryPermissionCollectionToDtoMapper = new RepositoryPermissionCollectionToDtoMapper(permissionToPermissionDtoMapper, resourceLinks);
|
repositoryPermissionCollectionToDtoMapper = new RepositoryPermissionCollectionToDtoMapper(permissionToPermissionDtoMapper, resourceLinks);
|
||||||
repositoryPermissionRootResource = new RepositoryPermissionRootResource(permissionDtoToPermissionMapper, permissionToPermissionDtoMapper, repositoryPermissionCollectionToDtoMapper, resourceLinks, repositoryManager);
|
permissionRootResource = new RepositoryPermissionRootResource(permissionDtoToPermissionMapper, permissionToPermissionDtoMapper, repositoryPermissionCollectionToDtoMapper, resourceLinks, repositoryManager);
|
||||||
super.permissionRootResource = Providers.of(repositoryPermissionRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
subjectThreadState.bind();
|
subjectThreadState.bind();
|
||||||
ThreadContext.bind(subject);
|
ThreadContext.bind(subject);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sonia.scm.api.v2.resources;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
import com.github.sdorra.shiro.ShiroRule;
|
import com.github.sdorra.shiro.ShiroRule;
|
||||||
@@ -122,7 +122,7 @@ public class RepositoryRootResourceTest extends RepositoryTestBase {
|
|||||||
super.dtoToRepositoryMapper = dtoToRepositoryMapper;
|
super.dtoToRepositoryMapper = dtoToRepositoryMapper;
|
||||||
super.manager = repositoryManager;
|
super.manager = repositoryManager;
|
||||||
RepositoryCollectionToDtoMapper repositoryCollectionToDtoMapper = new RepositoryCollectionToDtoMapper(repositoryToDtoMapper, resourceLinks);
|
RepositoryCollectionToDtoMapper repositoryCollectionToDtoMapper = new RepositoryCollectionToDtoMapper(repositoryToDtoMapper, resourceLinks);
|
||||||
super.repositoryCollectionResource = Providers.of(new RepositoryCollectionResource(repositoryManager, repositoryCollectionToDtoMapper, dtoToRepositoryMapper, resourceLinks, repositoryInitializer));
|
super.repositoryCollectionResource = new RepositoryCollectionResource(repositoryManager, repositoryCollectionToDtoMapper, dtoToRepositoryMapper, resourceLinks, repositoryInitializer);
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
when(serviceFactory.create(any(Repository.class))).thenReturn(service);
|
||||||
when(scmPathInfoStore.get()).thenReturn(uriInfo);
|
when(scmPathInfoStore.get()).thenReturn(uriInfo);
|
||||||
|
|||||||
@@ -21,49 +21,52 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sonia.scm.api.v2.resources;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
import com.google.inject.util.Providers;
|
|
||||||
import sonia.scm.repository.RepositoryManager;
|
import sonia.scm.repository.RepositoryManager;
|
||||||
|
|
||||||
import javax.inject.Provider;
|
import static com.google.inject.util.Providers.of;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public abstract class RepositoryTestBase {
|
abstract class RepositoryTestBase {
|
||||||
|
|
||||||
|
RepositoryToRepositoryDtoMapper repositoryToDtoMapper;
|
||||||
protected RepositoryToRepositoryDtoMapper repositoryToDtoMapper;
|
RepositoryDtoToRepositoryMapper dtoToRepositoryMapper;
|
||||||
protected RepositoryDtoToRepositoryMapper dtoToRepositoryMapper;
|
RepositoryManager manager;
|
||||||
protected RepositoryManager manager;
|
TagRootResource tagRootResource;
|
||||||
protected Provider<TagRootResource> tagRootResource;
|
BranchRootResource branchRootResource;
|
||||||
protected Provider<BranchRootResource> branchRootResource;
|
ChangesetRootResource changesetRootResource;
|
||||||
protected Provider<ChangesetRootResource> changesetRootResource;
|
SourceRootResource sourceRootResource;
|
||||||
protected Provider<SourceRootResource> sourceRootResource;
|
ContentResource contentResource;
|
||||||
protected Provider<ContentResource> contentResource;
|
RepositoryPermissionRootResource permissionRootResource;
|
||||||
protected Provider<RepositoryPermissionRootResource> permissionRootResource;
|
DiffRootResource diffRootResource;
|
||||||
protected Provider<DiffRootResource> diffRootResource;
|
ModificationsRootResource modificationsRootResource;
|
||||||
protected Provider<ModificationsRootResource> modificationsRootResource;
|
FileHistoryRootResource fileHistoryRootResource;
|
||||||
protected Provider<FileHistoryRootResource> fileHistoryRootResource;
|
IncomingRootResource incomingRootResource;
|
||||||
protected Provider<RepositoryCollectionResource> repositoryCollectionResource;
|
RepositoryCollectionResource repositoryCollectionResource;
|
||||||
protected Provider<IncomingRootResource> incomingRootResource;
|
|
||||||
|
|
||||||
|
|
||||||
RepositoryRootResource getRepositoryRootResource() {
|
RepositoryRootResource getRepositoryRootResource() {
|
||||||
return new RepositoryRootResource(Providers.of(new RepositoryResource(
|
RepositoryBasedResourceProvider repositoryBasedResourceProvider = new RepositoryBasedResourceProvider(
|
||||||
repositoryToDtoMapper,
|
of(tagRootResource),
|
||||||
dtoToRepositoryMapper,
|
of(branchRootResource),
|
||||||
manager,
|
of(changesetRootResource),
|
||||||
tagRootResource,
|
of(sourceRootResource),
|
||||||
branchRootResource,
|
of(contentResource),
|
||||||
changesetRootResource,
|
of(permissionRootResource),
|
||||||
sourceRootResource,
|
of(diffRootResource),
|
||||||
contentResource,
|
of(modificationsRootResource),
|
||||||
permissionRootResource,
|
of(fileHistoryRootResource),
|
||||||
diffRootResource,
|
of(incomingRootResource)
|
||||||
modificationsRootResource,
|
);
|
||||||
fileHistoryRootResource,
|
return new RepositoryRootResource(
|
||||||
incomingRootResource)), repositoryCollectionResource);
|
of(new RepositoryResource(
|
||||||
|
repositoryToDtoMapper,
|
||||||
|
dtoToRepositoryMapper,
|
||||||
|
manager,
|
||||||
|
repositoryBasedResourceProvider
|
||||||
|
)),
|
||||||
|
of(repositoryCollectionResource));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sonia.scm.api.v2.resources;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
import com.google.inject.util.Providers;
|
import com.google.inject.util.Providers;
|
||||||
@@ -74,8 +74,7 @@ public class SourceRootResourceTest extends RepositoryTestBase {
|
|||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(service);
|
||||||
when(service.getBrowseCommand()).thenReturn(browseCommandBuilder);
|
when(service.getBrowseCommand()).thenReturn(browseCommandBuilder);
|
||||||
|
|
||||||
SourceRootResource sourceRootResource = new SourceRootResource(serviceFactory, browserResultToFileObjectDtoMapper);
|
sourceRootResource = new SourceRootResource(serviceFactory, browserResultToFileObjectDtoMapper);
|
||||||
super.sourceRootResource = Providers.of(sourceRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sonia.scm.api.v2.resources;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
import com.google.inject.util.Providers;
|
import com.google.inject.util.Providers;
|
||||||
@@ -84,9 +84,6 @@ public class TagRootResourceTest extends RepositoryTestBase {
|
|||||||
@InjectMocks
|
@InjectMocks
|
||||||
private TagToTagDtoMapperImpl tagToTagDtoMapper;
|
private TagToTagDtoMapperImpl tagToTagDtoMapper;
|
||||||
|
|
||||||
private TagRootResource tagRootResource;
|
|
||||||
|
|
||||||
|
|
||||||
private final Subject subject = mock(Subject.class);
|
private final Subject subject = mock(Subject.class);
|
||||||
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
||||||
|
|
||||||
@@ -95,7 +92,6 @@ public class TagRootResourceTest extends RepositoryTestBase {
|
|||||||
public void prepareEnvironment() throws Exception {
|
public void prepareEnvironment() throws Exception {
|
||||||
tagCollectionToDtoMapper = new TagCollectionToDtoMapper(resourceLinks, tagToTagDtoMapper);
|
tagCollectionToDtoMapper = new TagCollectionToDtoMapper(resourceLinks, tagToTagDtoMapper);
|
||||||
tagRootResource = new TagRootResource(serviceFactory, tagCollectionToDtoMapper, tagToTagDtoMapper);
|
tagRootResource = new TagRootResource(serviceFactory, tagCollectionToDtoMapper, tagToTagDtoMapper);
|
||||||
super.tagRootResource = Providers.of(tagRootResource);
|
|
||||||
dispatcher.addSingletonResource(getRepositoryRootResource());
|
dispatcher.addSingletonResource(getRepositoryRootResource());
|
||||||
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
when(serviceFactory.create(new NamespaceAndName("space", "repo"))).thenReturn(repositoryService);
|
||||||
when(serviceFactory.create(any(Repository.class))).thenReturn(repositoryService);
|
when(serviceFactory.create(any(Repository.class))).thenReturn(repositoryService);
|
||||||
|
|||||||
Reference in New Issue
Block a user