diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-10-20 16:53:30 +0200 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-10-21 16:47:41 +0200 |
commit | d608bb523728924bc6f8f60b2d41517838f2a7f4 (patch) | |
tree | 4c7628232b353e77f9d545969d03f7f54c78d068 /server/sonar-server | |
parent | 3e73b2b43c26a74d0722ba2acc9adfc62b0b33c2 (diff) | |
download | sonarqube-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.java | 14 | ||||
-rw-r--r-- | server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java | 30 |
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(); |