aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/Platform.java2
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileSearch.java25
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java20
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb1
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileSearchTest.java68
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java26
6 files changed, 105 insertions, 37 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index 3924553b385..1c6017766e2 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -90,6 +90,7 @@ import org.sonar.server.permission.InternalPermissionService;
import org.sonar.server.permission.InternalPermissionTemplateService;
import org.sonar.server.permission.PermissionFinder;
import org.sonar.server.plugins.*;
+import org.sonar.server.qualityprofile.QProfileSearch;
import org.sonar.server.qualityprofile.QProfiles;
import org.sonar.server.qualityprofile.RubyQProfilesService;
import org.sonar.server.rule.RubyRuleService;
@@ -269,6 +270,7 @@ public final class Platform {
// quality profiles
servicesContainer.addSingleton(QProfiles.class);
+ servicesContainer.addSingleton(QProfileSearch.class);
servicesContainer.addSingleton(RubyQProfilesService.class);
// users
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileSearch.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileSearch.java
index 1436019432f..fba6a15fecf 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileSearch.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileSearch.java
@@ -20,7 +20,32 @@
package org.sonar.server.qualityprofile;
+import com.google.common.base.Function;
+import com.google.common.collect.Iterables;
import org.sonar.api.ServerComponent;
+import org.sonar.core.qualityprofile.db.QualityProfileDao;
+import org.sonar.core.qualityprofile.db.QualityProfileDto;
+
+import java.util.List;
+
+import static com.google.common.collect.Lists.newArrayList;
public class QProfileSearch implements ServerComponent {
+
+ private final QualityProfileDao dao;
+
+ public QProfileSearch(QualityProfileDao dao) {
+ this.dao = dao;
+ }
+
+ public List<QProfile> searchProfiles() {
+ List<QualityProfileDto> dtos = dao.selectAll();
+ return newArrayList(Iterables.transform(dtos, new Function<QualityProfileDto, QProfile>() {
+ @Override
+ public QProfile apply(QualityProfileDto input) {
+ return QProfile.from(input);
+ }
+ }));
+ }
+
}
diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java
index 96d70888b8b..829b648af97 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfiles.java
@@ -20,33 +20,21 @@
package org.sonar.server.qualityprofile;
-import com.google.common.base.Function;
-import com.google.common.collect.Iterables;
import org.sonar.api.ServerComponent;
import org.sonar.api.rule.RuleKey;
-import org.sonar.core.qualityprofile.db.QualityProfileDao;
-import org.sonar.core.qualityprofile.db.QualityProfileDto;
import java.util.List;
-import static com.google.common.collect.Lists.newArrayList;
-
public class QProfiles implements ServerComponent {
- private final QualityProfileDao dao;
+ private final QProfileSearch search;
- public QProfiles(QualityProfileDao dao) {
- this.dao = dao;
+ public QProfiles(QProfileSearch search) {
+ this.search = search;
}
public List<QProfile> searchProfiles() {
- List<QualityProfileDto> dtos = dao.selectAll();
- return newArrayList(Iterables.transform(dtos, new Function<QualityProfileDto, QProfile>() {
- @Override
- public QProfile apply(QualityProfileDto input) {
- return QProfile.from(input);
- }
- }));
+ return search.searchProfiles();
}
public void searchProfile(QProfileKey profile) {
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb
index a6ddadabd55..e2393b4dfd4 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb
@@ -28,7 +28,6 @@ class ProfilesController < ApplicationController
# GET /profiles/index
def index
add_breadcrumbs ProfilesController::root_breadcrumb
- #@profiles = Internal.qprofiles.searchProfiles()
@profiles = Profile.all
Api::Utils.insensitive_sort!(@profiles){|profile| profile.name}
end
diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileSearchTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileSearchTest.java
new file mode 100644
index 00000000000..1a5c2c4c7a1
--- /dev/null
+++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileSearchTest.java
@@ -0,0 +1,68 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2013 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube 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.
+ *
+ * SonarQube 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.qualityprofile;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.sonar.core.qualityprofile.db.QualityProfileDao;
+import org.sonar.core.qualityprofile.db.QualityProfileDto;
+
+import java.util.List;
+
+import static com.google.common.collect.Lists.newArrayList;
+import static org.fest.assertions.Assertions.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class QProfileSearchTest {
+
+ @Mock
+ QualityProfileDao dao;
+
+ QProfileSearch search;
+
+ @Before
+ public void setUp() throws Exception {
+ search = new QProfileSearch(dao);
+ }
+
+ @Test
+ public void search_profiles() throws Exception {
+ when(dao.selectAll()).thenReturn(newArrayList(
+ new QualityProfileDto().setId(1).setName("Sonar Way with Findbugs").setLanguage("java").setParent("Sonar Way").setVersion(1).setUsed(false)
+ ));
+
+ List<QProfile> result = search.searchProfiles();
+ assertThat(result).hasSize(1);
+
+ QProfile qProfile = result.get(0);
+ assertThat(qProfile.id()).isEqualTo(1);
+ assertThat(qProfile.name()).isEqualTo("Sonar Way with Findbugs");
+ assertThat(qProfile.language()).isEqualTo("java");
+ assertThat(qProfile.key()).isEqualTo(QProfileKey.of("Sonar Way with Findbugs", "java"));
+ assertThat(qProfile.parent()).isEqualTo("Sonar Way");
+ assertThat(qProfile.version()).isEqualTo(1);
+ assertThat(qProfile.used()).isFalse();
+ }
+}
diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java
index 45365a35c4c..0000f971e36 100644
--- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfilesTest.java
@@ -25,10 +25,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
-import org.sonar.core.qualityprofile.db.QualityProfileDao;
-import org.sonar.core.qualityprofile.db.QualityProfileDto;
-
-import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
import static org.fest.assertions.Assertions.assertThat;
@@ -38,32 +34,22 @@ import static org.mockito.Mockito.when;
public class QProfilesTest {
@Mock
- QualityProfileDao dao;
+ QProfileSearch search;
QProfiles qProfiles;
@Before
public void setUp() throws Exception {
- qProfiles = new QProfiles(dao);
+ qProfiles = new QProfiles(search);
}
@Test
public void search_profiles() throws Exception {
- when(dao.selectAll()).thenReturn(newArrayList(
- new QualityProfileDto().setId(1).setName("Sonar Way with Findbugs").setLanguage("java").setParent("Sonar Way").setVersion(1).setUsed(false)
+ when(qProfiles.searchProfiles()).thenReturn(newArrayList(
+ new QProfile().setId(1).setName("Sonar Way with Findbugs").setLanguage("java").setParent("Sonar Way").setVersion(1).setUsed(false)
));
- List<QProfile> result = qProfiles.searchProfiles();
- assertThat(result).hasSize(1);
-
- QProfile qProfile = result.get(0);
- assertThat(qProfile.id()).isEqualTo(1);
- assertThat(qProfile.name()).isEqualTo("Sonar Way with Findbugs");
- assertThat(qProfile.language()).isEqualTo("java");
- assertThat(qProfile.key()).isEqualTo(QProfileKey.of("Sonar Way with Findbugs", "java"));
- assertThat(qProfile.parent()).isEqualTo("Sonar Way");
- assertThat(qProfile.version()).isEqualTo(1);
- assertThat(qProfile.used()).isFalse();
+ assertThat(qProfiles.searchProfiles()).hasSize(1);
}
@Test(expected = UnsupportedOperationException.class)
@@ -98,7 +84,7 @@ public class QProfilesTest {
@Test(expected = UnsupportedOperationException.class)
public void testExportProfile() throws Exception {
- qProfiles.exportProfile(null, null);
+ qProfiles.exportProfile(QProfileKey.of("Default profile", "java"));
}
@Test(expected = UnsupportedOperationException.class)