From 1ee2ad16f1620662c2f4c6540706d3327ec1fa30 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Mon, 1 Aug 2016 22:55:49 +0200 Subject: [PATCH] Drop unused class RubyQProfileActivityService --- .../container/ComputeEngineContainerImpl.java | 1 - .../org/sonar/server/activity/Activity.java | 2 +- .../activity/RubyQProfileActivityService.java | 105 ------------ .../server/activity/index/ActivityDoc.java | 2 +- .../platformlevel/PlatformLevel4.java | 2 - .../qualityprofile/QProfileActivity.java | 2 +- .../qualityprofile/QProfileActivityQuery.java | 11 +- .../qualityprofile/QProfileService.java | 34 +--- .../RubyQProfileActivityServiceTest.java | 101 ------------ .../QProfileServiceMediumTest.java | 154 +----------------- 10 files changed, 14 insertions(+), 400 deletions(-) delete mode 100644 server/sonar-server/src/main/java/org/sonar/server/activity/RubyQProfileActivityService.java delete mode 100644 server/sonar-server/src/test/java/org/sonar/server/activity/RubyQProfileActivityServiceTest.java diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java index 571a58602e6..56b29de5dec 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java @@ -357,7 +357,6 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer { // QProfileCopier.class, indirectly only used in Web Services // QProfileBackuper.class, indirectly only used in Web Services // QProfileReset.class, indirectly only used in Web Services - // RubyQProfileActivityService.class, only used by JRuby // rule // RuleIndexDefinition.class, ES maintenance, responsibility of Web Server diff --git a/server/sonar-server/src/main/java/org/sonar/server/activity/Activity.java b/server/sonar-server/src/main/java/org/sonar/server/activity/Activity.java index 67069330b30..3c05da730fe 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/activity/Activity.java +++ b/server/sonar-server/src/main/java/org/sonar/server/activity/Activity.java @@ -27,7 +27,7 @@ import javax.annotation.Nullable; public class Activity { public enum Type { - QPROFILE, SERVER, ANALYSIS_REPORT + QPROFILE, ANALYSIS_REPORT } private Type type; diff --git a/server/sonar-server/src/main/java/org/sonar/server/activity/RubyQProfileActivityService.java b/server/sonar-server/src/main/java/org/sonar/server/activity/RubyQProfileActivityService.java deleted file mode 100644 index 83de8b34445..00000000000 --- a/server/sonar-server/src/main/java/org/sonar/server/activity/RubyQProfileActivityService.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.server.activity; - -import java.util.Date; -import java.util.List; -import java.util.Map; -import org.picocontainer.Startable; -import org.sonar.api.server.ServerSide; -import org.sonar.api.utils.Paging; -import org.sonar.server.es.SearchOptions; -import org.sonar.server.qualityprofile.QProfileActivity; -import org.sonar.server.qualityprofile.QProfileActivityQuery; -import org.sonar.server.qualityprofile.QProfileService; -import org.sonar.server.search.Result; -import org.sonar.server.util.RubyUtils; - -import static org.sonar.api.utils.Paging.forPageIndex; - -/** - * @deprecated in 4.4 because Ruby on Rails is deprecated too ! - */ -@Deprecated -@ServerSide -public class RubyQProfileActivityService implements Startable { - - private final QProfileService service; - - public RubyQProfileActivityService(QProfileService service) { - this.service = service; - } - - /** - * Used in profiles_controller.rb - */ - public QProfileActivityResult search(Map params) { - QProfileActivityQuery query = new QProfileActivityQuery(); - - query.setQprofileKey((String) params.get("profileKey")); - Date since = RubyUtils.toDate(params.get("since")); - if (since != null) { - query.setSince(since); - } - Date to = RubyUtils.toDate(params.get("to")); - if (to != null) { - query.setTo(to); - } - - SearchOptions options = new SearchOptions(); - Integer page = RubyUtils.toInteger(params.get("p")); - int pageIndex = page != null ? page : 1; - options.setPage(pageIndex, 50); - - Result result = service.searchActivities(query, options); - return new QProfileActivityResult(result.getHits(), forPageIndex(pageIndex).withPageSize(options.getLimit()).andTotal((int) result.getTotal())); - } - - @Override - public void start() { - // used to force pico to instantiate the singleton at startup - } - - @Override - public void stop() { - // implement startable - } - - public static class QProfileActivityResult { - - private final List activities; - - private final Paging paging; - - public QProfileActivityResult(List activities, Paging paging) { - this.activities = activities; - this.paging = paging; - } - - public List activities() { - return activities; - } - - public Paging paging() { - return paging; - } - - } -} diff --git a/server/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java b/server/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java index 5267da37dd4..5382cb046e2 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java +++ b/server/sonar-server/src/main/java/org/sonar/server/activity/index/ActivityDoc.java @@ -36,7 +36,7 @@ public class ActivityDoc extends BaseDoc { @VisibleForTesting ActivityDoc() { - super(new HashMap()); + super(new HashMap<>()); } @Override diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java index 0a41ac2a4a2..ef0e64a9137 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java @@ -34,7 +34,6 @@ import org.sonar.core.component.DefaultResourceTypes; import org.sonar.core.timemachine.Periods; import org.sonar.db.permission.PermissionRepository; import org.sonar.server.activity.ActivityService; -import org.sonar.server.activity.RubyQProfileActivityService; import org.sonar.server.activity.index.ActivityIndex; import org.sonar.server.activity.index.ActivityIndexDefinition; import org.sonar.server.activity.index.ActivityIndexer; @@ -395,7 +394,6 @@ public class PlatformLevel4 extends PlatformLevel { QProfileCopier.class, QProfileBackuper.class, QProfileReset.class, - RubyQProfileActivityService.class, // rule RuleIndexDefinition.class, diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivity.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivity.java index 9516b8ffa28..f8753b6c738 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivity.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivity.java @@ -73,7 +73,7 @@ public class QProfileActivity extends ActivityDoc { } public RuleKey ruleKey(){ - return RuleKey.parse((String) getField("ruleKey")); + return RuleKey.parse(getField("ruleKey")); } @Override diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivityQuery.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivityQuery.java index d81330d3eee..06f242b526d 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivityQuery.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActivityQuery.java @@ -19,13 +19,11 @@ */ package org.sonar.server.qualityprofile; +import java.util.Arrays; +import javax.annotation.Nullable; import org.sonar.server.activity.Activity; import org.sonar.server.activity.index.ActivityQuery; -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; -import java.util.Arrays; - /** * @since 4.4 */ @@ -36,11 +34,6 @@ public class QProfileActivityQuery extends ActivityQuery { setTypes(Arrays.asList(Activity.Type.QPROFILE.name())); } - @CheckForNull - public String getQprofileKey() { - return (String)getDataOrFilters().get("profileKey"); - } - public QProfileActivityQuery setQprofileKey(@Nullable String qprofileKey) { if (qprofileKey != null) { addDataOrFilter("profileKey", qprofileKey); diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java index dccab17f092..ff3c7eb23f5 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileService.java @@ -19,7 +19,6 @@ */ package org.sonar.server.qualityprofile; -import com.google.common.base.Optional; import java.io.Reader; import java.io.StringReader; import java.io.StringWriter; @@ -29,28 +28,21 @@ import java.util.List; import java.util.Map; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.search.SearchHit; import org.sonar.api.server.ServerSide; import org.sonar.core.permission.GlobalPermissions; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.qualityprofile.ActiveRuleKey; import org.sonar.db.qualityprofile.QualityProfileDto; -import org.sonar.db.rule.RuleDto; -import org.sonar.db.user.UserDto; import org.sonar.server.activity.index.ActivityIndex; -import org.sonar.server.es.SearchOptions; import org.sonar.server.qualityprofile.index.ActiveRuleIndexer; import org.sonar.server.rule.index.RuleQuery; -import org.sonar.server.search.Result; import org.sonar.server.user.UserSession; @ServerSide public class QProfileService { private final DbClient db; - private final ActivityIndex activityIndex; private final ActiveRuleIndexer activeRuleIndexer; private final RuleActivator ruleActivator; private final QProfileFactory factory; @@ -60,11 +52,10 @@ public class QProfileService { private final QProfileExporters exporters; private final UserSession userSession; - public QProfileService(DbClient db, ActivityIndex activityIndex, ActiveRuleIndexer activeRuleIndexer, RuleActivator ruleActivator, QProfileFactory factory, + public QProfileService(DbClient db, ActiveRuleIndexer activeRuleIndexer, RuleActivator ruleActivator, QProfileFactory factory, QProfileBackuper backuper, QProfileCopier copier, QProfileReset reset, QProfileExporters exporters, UserSession userSession) { this.db = db; - this.activityIndex = activityIndex; this.activeRuleIndexer = activeRuleIndexer; this.ruleActivator = ruleActivator; this.factory = factory; @@ -224,27 +215,4 @@ public class QProfileService { userSession.checkLoggedIn(); userSession.checkPermission(GlobalPermissions.QUALITY_PROFILE_ADMIN); } - - public Result searchActivities(QProfileActivityQuery query, SearchOptions options) { - DbSession session = db.openSession(false); - try { - SearchResponse response = activityIndex.doSearch(query, options); - Result result = new Result<>(response); - for (SearchHit hit : response.getHits().getHits()) { - QProfileActivity profileActivity = new QProfileActivity(hit.getSource()); - Optional ruleDto = db.ruleDao().selectByKey(session, profileActivity.ruleKey()); - profileActivity.ruleName(ruleDto.isPresent() ? ruleDto.get().getName() : null); - - String login = profileActivity.getLogin(); - if (login != null) { - UserDto user = db.userDao().selectActiveUserByLogin(session, login); - profileActivity.authorName(user != null ? user.getName() : null); - } - result.getHits().add(profileActivity); - } - return result; - } finally { - session.close(); - } - } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/activity/RubyQProfileActivityServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/activity/RubyQProfileActivityServiceTest.java deleted file mode 100644 index 4d1a39feadc..00000000000 --- a/server/sonar-server/src/test/java/org/sonar/server/activity/RubyQProfileActivityServiceTest.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.server.activity; - -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; -import org.sonar.api.utils.DateUtils; -import org.sonar.server.es.SearchOptions; -import org.sonar.server.qualityprofile.QProfileActivity; -import org.sonar.server.qualityprofile.QProfileActivityQuery; -import org.sonar.server.qualityprofile.QProfileService; -import org.sonar.server.search.Result; - -import java.util.Date; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.*; - -@RunWith(MockitoJUnitRunner.class) -public class RubyQProfileActivityServiceTest { - - @Mock - QProfileService service; - - @Captor - ArgumentCaptor activityArgumentCaptor; - - @Captor - ArgumentCaptor queryOptionsArgumentCaptor; - - RubyQProfileActivityService rubyQProfileActivityService; - - @Before - public void setUp() { - rubyQProfileActivityService = new RubyQProfileActivityService(service); - } - - @Test - public void search() { - Date since = DateUtils.parseDate("2014-05-19"); - Date to = DateUtils.parseDate("2014-06-19"); - - Result result = mock(Result.class); - when(result.getHits()).thenReturn(Lists.newArrayList()); - when(result.getTotal()).thenReturn(10L); - when(service.searchActivities(any(QProfileActivityQuery.class), any(SearchOptions.class))).thenReturn(result); - - rubyQProfileActivityService.search(ImmutableMap.of("profileKey", "PROFILE_KEY", "since", since, "to", to)); - - verify(service).searchActivities(activityArgumentCaptor.capture(), queryOptionsArgumentCaptor.capture()); - - assertThat(queryOptionsArgumentCaptor.getValue().getLimit()).isEqualTo(50); - - assertThat(activityArgumentCaptor.getValue().getQprofileKey()).isEqualTo("PROFILE_KEY"); - assertThat(activityArgumentCaptor.getValue().getTypes()).containsOnly(Activity.Type.QPROFILE.name()); - assertThat(activityArgumentCaptor.getValue().getSince()).isEqualTo(since); - assertThat(activityArgumentCaptor.getValue().getTo()).isEqualTo(to); - } - - @Test - public void search_with_empty_fields() { - Result result = mock(Result.class); - when(result.getHits()).thenReturn(Lists.newArrayList()); - when(result.getTotal()).thenReturn(10L); - when(service.searchActivities(any(QProfileActivityQuery.class), any(SearchOptions.class))).thenReturn(result); - - rubyQProfileActivityService.search(ImmutableMap.of()); - - verify(service).searchActivities(activityArgumentCaptor.capture(), queryOptionsArgumentCaptor.capture()); - - assertThat(queryOptionsArgumentCaptor.getValue().getLimit()).isEqualTo(50); - - assertThat(activityArgumentCaptor.getValue().getQprofileKey()).isNull(); - assertThat(activityArgumentCaptor.getValue().getSince()).isNull(); - assertThat(activityArgumentCaptor.getValue().getTo()).isNull(); - } -} diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileServiceMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileServiceMediumTest.java index 5f9b594c724..c85811c55c0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileServiceMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileServiceMediumTest.java @@ -24,7 +24,6 @@ import com.google.common.collect.Multimap; import java.io.IOException; import java.io.Reader; import java.io.Writer; -import java.util.List; import java.util.Map; import org.junit.After; import org.junit.Before; @@ -35,21 +34,15 @@ import org.sonar.api.profiles.ProfileImporter; import org.sonar.api.profiles.RulesProfile; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.RuleStatus; -import org.sonar.api.rule.Severity; import org.sonar.api.rules.Rule; import org.sonar.api.rules.RulePriority; import org.sonar.api.utils.ValidationMessages; import org.sonar.core.permission.GlobalPermissions; import org.sonar.db.DbClient; import org.sonar.db.DbSession; -import org.sonar.db.qualityprofile.ActiveRuleKey; import org.sonar.db.qualityprofile.QualityProfileDto; import org.sonar.db.rule.RuleDto; import org.sonar.db.rule.RuleTesting; -import org.sonar.db.user.UserDto; -import org.sonar.server.activity.Activity; -import org.sonar.server.activity.ActivityService; -import org.sonar.server.es.SearchOptions; import org.sonar.server.qualityprofile.index.ActiveRuleIndex; import org.sonar.server.qualityprofile.index.ActiveRuleIndexer; import org.sonar.server.rule.index.RuleIndex; @@ -57,7 +50,6 @@ import org.sonar.server.rule.index.RuleIndexDefinition; import org.sonar.server.rule.index.RuleIndexer; import org.sonar.server.rule.index.RuleQuery; import org.sonar.server.search.FacetValue; -import org.sonar.server.search.Result; import org.sonar.server.tester.ServerTester; import org.sonar.server.tester.UserSessionRule; @@ -76,16 +68,15 @@ public class QProfileServiceMediumTest { @org.junit.Rule public UserSessionRule userSessionRule = UserSessionRule.forServerTester(tester); - DbClient dbClient; - DbSession dbSession; - QProfileService service; - QProfileLoader loader; - RuleActivator activator; - ActiveRuleIndex activeRuleIndex; - RuleIndexer ruleIndexer; - ActiveRuleIndexer activeRuleIndexer; + private DbClient dbClient; + private DbSession dbSession; + private QProfileService service; + private QProfileLoader loader; + private ActiveRuleIndex activeRuleIndex; + private RuleIndexer ruleIndexer; + private ActiveRuleIndexer activeRuleIndexer; - RuleDto xooRule1 = newXooX1().setSeverity("MINOR"); + private RuleDto xooRule1 = newXooX1().setSeverity("MINOR"); @Before public void before() { @@ -94,7 +85,6 @@ public class QProfileServiceMediumTest { dbSession = dbClient.openSession(false); service = tester.get(QProfileService.class); loader = tester.get(QProfileLoader.class); - activator = tester.get(RuleActivator.class); ruleIndexer = tester.get(RuleIndexer.class); activeRuleIndexer = tester.get(ActiveRuleIndexer.class); activeRuleIndex = tester.get(ActiveRuleIndex.class); @@ -222,134 +212,6 @@ public class QProfileServiceMediumTest { assertThat(loader.countDeprecatedActiveRulesByProfile(XOO_P1_KEY)).isEqualTo(1); } - @Test - public void search_qprofile_activity() { - userSessionRule.login("david").setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN); - - UserDto user = new UserDto().setLogin("david").setName("David").setEmail("dav@id.com").setCreatedAt(System.currentTimeMillis()).setUpdatedAt(System.currentTimeMillis()); - dbClient.userDao().insert(dbSession, user); - dbSession.commit(); - - // We need an actual rule in DB to test RuleName in Activity - RuleDto rule = dbClient.ruleDao().selectOrFailByKey(dbSession, RuleTesting.XOO_X1); - - tester.get(ActivityService.class).save(ActiveRuleChange.createFor(ActiveRuleChange.Type.ACTIVATED, ActiveRuleKey.of(XOO_P1_KEY, RuleTesting.XOO_X1)) - .setSeverity(Severity.MAJOR) - .setParameter("max", "10").toActivity()); - - Result activities = service.searchActivities(new QProfileActivityQuery(), new SearchOptions()); - assertThat(activities.getHits()).hasSize(1); - - QProfileActivity activity = activities.getHits().get(0); - assertThat(activity.getType()).isEqualTo(Activity.Type.QPROFILE.name()); - assertThat(activity.getAction()).isEqualTo(ActiveRuleChange.Type.ACTIVATED.name()); - assertThat(activity.ruleKey()).isEqualTo(RuleTesting.XOO_X1); - assertThat(activity.profileKey()).isEqualTo(XOO_P1_KEY); - assertThat(activity.severity()).isEqualTo(Severity.MAJOR); - assertThat(activity.ruleName()).isEqualTo(rule.getName()); - assertThat(activity.getLogin()).isEqualTo("david"); - assertThat(activity.authorName()).isEqualTo("David"); - - assertThat(activity.parameters()).hasSize(1); - assertThat(activity.parameters().get("max")).isEqualTo("10"); - } - - @Test - public void search_qprofile_activity_without_severity() { - userSessionRule.login().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN); - - RuleKey ruleKey = RuleKey.of("xoo", "deleted_rule"); - - tester.get(ActivityService.class).save(ActiveRuleChange.createFor(ActiveRuleChange.Type.UPDATED, ActiveRuleKey.of(XOO_P1_KEY, ruleKey)) - .setParameter("max", "10").toActivity()); - - Result activities = service.searchActivities(new QProfileActivityQuery(), new SearchOptions()); - assertThat(activities.getHits()).hasSize(1); - - QProfileActivity activity = activities.getHits().get(0); - assertThat(activity.severity()).isNull(); - assertThat(activity.parameters()).hasSize(1); - assertThat(activity.parameters().get("max")).isEqualTo("10"); - } - - @Test - public void search_qprofile_activity_with_user_not_found() { - userSessionRule.login("david").setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN); - - // We need an actual rule in DB to test RuleName in Activity - // TODO ??? - // db.ruleDao().getByKey(dbSession, RuleTesting.XOO_X1); - // dbSession.commit(); - - tester.get(ActivityService.class).save( - ActiveRuleChange.createFor(ActiveRuleChange.Type.ACTIVATED, ActiveRuleKey.of(XOO_P1_KEY, RuleTesting.XOO_X1)) - .setSeverity(Severity.MAJOR) - .setParameter("max", "10") - .toActivity()); - - Result activities = service.searchActivities(new QProfileActivityQuery(), new SearchOptions()); - assertThat(activities.getHits()).hasSize(1); - - QProfileActivity activity = activities.getHits().get(0); - assertThat(activity.getLogin()).isEqualTo("david"); - assertThat(activity.authorName()).isNull(); - } - - @Test - public void search_qprofile_activity_with_rule_not_found() { - userSessionRule.login().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN); - - RuleKey ruleKey = RuleKey.of("xoo", "deleted_rule"); - - tester.get(ActivityService.class).save(ActiveRuleChange.createFor(ActiveRuleChange.Type.ACTIVATED, ActiveRuleKey.of(XOO_P1_KEY, ruleKey)) - .setSeverity(Severity.MAJOR) - .setParameter("max", "10") - .toActivity()); - dbSession.commit(); - - Result activities = service.searchActivities(new QProfileActivityQuery(), new SearchOptions()); - assertThat(activities.getHits()).hasSize(1); - - QProfileActivity activity = activities.getHits().get(0); - assertThat(activity.ruleKey()).isEqualTo(ruleKey); - assertThat(activity.ruleName()).isNull(); - } - - @Test - public void search_activity_by_qprofile() { - - tester.get(ActivityService.class).save( - ActiveRuleChange.createFor(ActiveRuleChange.Type.ACTIVATED, ActiveRuleKey.of(XOO_P1_KEY, RuleTesting.XOO_X1)).toActivity()); - tester.get(ActivityService.class).save( - ActiveRuleChange.createFor(ActiveRuleChange.Type.ACTIVATED, ActiveRuleKey.of(XOO_P2_KEY, RuleTesting.XOO_X1)).toActivity()); - - // 0. Base case verify 2 activities in index - assertThat(service.searchActivities(new QProfileActivityQuery(), new SearchOptions()).getHits()) - .hasSize(2); - - // 1. filter by QProfile - List result = service.searchActivities(new QProfileActivityQuery() - .setQprofileKey(XOO_P1_KEY), new SearchOptions()).getHits(); - assertThat(result).hasSize(1); - } - - @Test - public void search_activity_by_qprofile_having_dashes_in_keys() { - tester.get(ActivityService.class).save( - ActiveRuleChange.createFor(ActiveRuleChange.Type.ACTIVATED, ActiveRuleKey.of("java-default", RuleTesting.XOO_X1)).toActivity()); - tester.get(ActivityService.class).save( - ActiveRuleChange.createFor(ActiveRuleChange.Type.ACTIVATED, ActiveRuleKey.of("java-toto", RuleTesting.XOO_X1)).toActivity()); - - // 0. Base case verify 2 activities in index - assertThat(service.searchActivities(new QProfileActivityQuery(), new SearchOptions()).getHits()) - .hasSize(2); - - // 1. filter by QProfile - List result = service.searchActivities(new QProfileActivityQuery() - .setQprofileKey("java-default"), new SearchOptions()).getHits(); - assertThat(result).hasSize(1); - } - @Test public void set_default() { userSessionRule.login().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN); -- 2.39.5