mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-07-02 19:48:57 +02:00
Add "enable file search" flag on global config.
Make the repository file search deactivatable via the global config. This feature could overwhelm the server on repositories with millions of file therefore it now can be turned off. Committed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com> Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
This commit is contained in:
@@ -46,6 +46,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import sonia.scm.NotFoundException;
|
||||
import sonia.scm.PageResult;
|
||||
import sonia.scm.admin.ScmConfigurationStore;
|
||||
import sonia.scm.config.ScmConfiguration;
|
||||
import sonia.scm.event.ScmEventBus;
|
||||
import sonia.scm.importexport.ExportFileExtensionResolver;
|
||||
@@ -146,6 +147,8 @@ public class RepositoryRootResourceTest extends RepositoryTestBase {
|
||||
@Mock
|
||||
private RepositoryInitializer repositoryInitializer;
|
||||
@Mock
|
||||
private ScmConfigurationStore configurationStore;
|
||||
@Mock
|
||||
private ScmConfiguration configuration;
|
||||
@Mock
|
||||
private Set<NamespaceStrategy> strategies;
|
||||
@@ -189,6 +192,7 @@ public class RepositoryRootResourceTest extends RepositoryTestBase {
|
||||
|
||||
@Before
|
||||
public void prepareEnvironment() throws IOException {
|
||||
when(configurationStore.get()).thenReturn(configuration);
|
||||
super.repositoryToDtoMapper = repositoryToDtoMapper;
|
||||
super.dtoToRepositoryMapper = dtoToRepositoryMapper;
|
||||
super.manager = repositoryManager;
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.junit.Test;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import sonia.scm.SCMContextProvider;
|
||||
import sonia.scm.admin.ScmConfigurationStore;
|
||||
import sonia.scm.config.ScmConfiguration;
|
||||
import sonia.scm.repository.CustomNamespaceStrategy;
|
||||
import sonia.scm.repository.HealthCheckFailure;
|
||||
@@ -87,6 +88,8 @@ public class RepositoryToRepositoryDtoMapperTest {
|
||||
@Mock
|
||||
private ScmPathInfo uriInfo;
|
||||
@Mock
|
||||
private ScmConfigurationStore scmConfigurationStore;
|
||||
@Mock
|
||||
private ScmConfiguration configuration;
|
||||
@Mock
|
||||
private Set<NamespaceStrategy> strategies;
|
||||
@@ -110,6 +113,7 @@ public class RepositoryToRepositoryDtoMapperTest {
|
||||
when(configuration.getNamespaceStrategy()).thenReturn("CustomNamespaceStrategy");
|
||||
when(uriInfo.getApiRestUri()).thenReturn(URI.create("/x/y"));
|
||||
doReturn(ImmutableSet.of(new CustomNamespaceStrategy()).iterator()).when(strategies).iterator();
|
||||
when(scmConfigurationStore.get()).thenReturn(configuration);
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -321,8 +325,16 @@ public class RepositoryToRepositoryDtoMapperTest {
|
||||
dto.getLinks().getLinkBy("exportInfo").get().getHref());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldNotCreatePathsLink() {
|
||||
when(configuration.isEnabledFileSearch()).thenReturn(false);
|
||||
RepositoryDto dto = mapper.map(createTestRepository());
|
||||
assertThat(dto.getLinks().getLinkBy("paths")).isNotPresent();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreatePathsLink() {
|
||||
when(configuration.isEnabledFileSearch()).thenReturn(true);
|
||||
RepositoryDto dto = mapper.map(createTestRepository());
|
||||
assertThat(dto.getLinks().getLinkBy("paths"))
|
||||
.isPresent()
|
||||
|
||||
@@ -34,13 +34,16 @@ import org.jboss.resteasy.mock.MockHttpResponse;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import sonia.scm.ContextEntry;
|
||||
import sonia.scm.NotFoundException;
|
||||
import sonia.scm.PageResult;
|
||||
import sonia.scm.admin.ScmConfigurationStore;
|
||||
import sonia.scm.config.ScmConfiguration;
|
||||
import sonia.scm.group.GroupManager;
|
||||
import sonia.scm.security.ApiKeyService;
|
||||
@@ -84,6 +87,7 @@ import static org.mockito.MockitoAnnotations.initMocks;
|
||||
password = "secret",
|
||||
configuration = "classpath:sonia/scm/repository/shiro.ini"
|
||||
)
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class UserRootResourceTest {
|
||||
|
||||
@Rule
|
||||
@@ -112,6 +116,8 @@ public class UserRootResourceTest {
|
||||
@Mock
|
||||
private GroupToGroupDtoMapper groupToGroupDtoMapper;
|
||||
@Mock
|
||||
private ScmConfigurationStore scmConfigurationStore;
|
||||
@Mock
|
||||
private ScmConfiguration scmConfiguration;
|
||||
@InjectMocks
|
||||
private UserDtoToUserMapperImpl dtoToUserMapper;
|
||||
@@ -135,6 +141,7 @@ public class UserRootResourceTest {
|
||||
@Before
|
||||
public void prepareEnvironment() {
|
||||
initMocks(this);
|
||||
when(scmConfigurationStore.get()).thenReturn(scmConfiguration);
|
||||
originalUser = createDummyUser("Neo");
|
||||
when(userManager.create(userCaptor.capture())).thenAnswer(invocation -> invocation.getArguments()[0]);
|
||||
when(userManager.isTypeDefault(userCaptor.capture())).thenCallRealMethod();
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import sonia.scm.admin.ScmConfigurationStore;
|
||||
import sonia.scm.config.ScmConfiguration;
|
||||
import sonia.scm.user.User;
|
||||
import sonia.scm.user.UserManager;
|
||||
@@ -57,6 +58,8 @@ public class UserToUserDtoMapperTest {
|
||||
@Mock
|
||||
private UserManager userManager;
|
||||
@Mock
|
||||
private ScmConfigurationStore scmConfigurationStore;
|
||||
@Mock
|
||||
private ScmConfiguration scmConfiguration;
|
||||
|
||||
@InjectMocks
|
||||
@@ -74,6 +77,8 @@ public class UserToUserDtoMapperTest {
|
||||
expectedBaseUri = baseUri.resolve(UserRootResource.USERS_PATH_V2 + "/");
|
||||
subjectThreadState.bind();
|
||||
ThreadContext.bind(subject);
|
||||
|
||||
when(scmConfigurationStore.get()).thenReturn(scmConfiguration);
|
||||
}
|
||||
|
||||
@After
|
||||
|
||||
Reference in New Issue
Block a user