aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-10-20 16:53:30 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-10-21 16:47:41 +0200
commitd608bb523728924bc6f8f60b2d41517838f2a7f4 (patch)
tree4c7628232b353e77f9d545969d03f7f54c78d068 /server/sonar-server
parent3e73b2b43c26a74d0722ba2acc9adfc62b0b33c2 (diff)
downloadsonarqube-d608bb523728924bc6f8f60b2d41517838f2a7f4.tar.gz
sonarqube-d608bb523728924bc6f8f60b2d41517838f2a7f4.zip
SONAR-8318 api/project_links/search support null name or type
Diffstat (limited to 'server/sonar-server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/SearchAction.java14
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java30
2 files changed, 32 insertions, 12 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/SearchAction.java
index b06605c1235..726b74bf409 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/SearchAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/SearchAction.java
@@ -108,12 +108,16 @@ public class SearchAction implements ProjectLinksWsAction {
}
private static Link buildLink(ComponentLinkDto link) {
- return Link.newBuilder()
+ Link.Builder builder = Link.newBuilder()
.setId(String.valueOf(link.getId()))
- .setName(link.getName())
- .setType(link.getType())
- .setUrl(link.getHref())
- .build();
+ .setUrl(link.getHref());
+ if (link.getName() != null) {
+ builder.setName(link.getName());
+ }
+ if (link.getType() != null) {
+ builder.setType(link.getType());
+ }
+ return builder.build();
}
private ComponentDto getComponentByUuidOrKey(DbSession dbSession, SearchWsRequest request) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java
index 45557966b77..42505af9188 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java
@@ -58,19 +58,17 @@ public class SearchActionTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
-
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
-
@Rule
public DbTester db = DbTester.create(System2.INSTANCE);
- DbClient dbClient = db.getDbClient();
- DbSession dbSession = db.getSession();
- ComponentDbTester componentDb = new ComponentDbTester(db);
- WsActionTester ws;
+ private DbClient dbClient = db.getDbClient();
+ private DbSession dbSession = db.getSession();
+ private ComponentDbTester componentDb = new ComponentDbTester(db);
- SearchAction underTest;
+ private SearchAction underTest;
+ private WsActionTester ws;
@Before
public void setUp() {
@@ -145,6 +143,24 @@ public class SearchActionTest {
}
@Test
+ public void request_does_not_fail_when_link_has_no_name() throws IOException {
+ ComponentDto project = db.components().insertProject();
+ ComponentLinkDto foo = new ComponentLinkDto().setComponentUuid(project.uuid()).setHref("foo").setType("type");
+ insertLink(foo);
+
+ callByKey(project.key());
+ }
+
+ @Test
+ public void request_does_not_fail_when_link_has_no_type() throws IOException {
+ ComponentDto project = db.components().insertProject();
+ ComponentLinkDto foo = new ComponentLinkDto().setComponentUuid(project.uuid()).setHref("foo").setName("name");
+ insertLink(foo);
+
+ callByKey(project.key());
+ }
+
+ @Test
public void global_admin() throws IOException {
userSession.login("login").setGlobalPermissions(SYSTEM_ADMIN);
checkItWorks();