diff options
Diffstat (limited to 'sonar-core')
-rw-r--r-- | sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java | 5 | ||||
-rw-r--r-- | sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java b/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java index 4901abda11c..e893f2970f8 100644 --- a/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java +++ b/sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java @@ -154,6 +154,11 @@ public class ResourceDao { } } + public Component findByKey(String key) { + ResourceDto resourceDto = getResource(ResourceQuery.create().setKey(key)); + return resourceDto != null ? toComponent(resourceDto) : null; + } + public List<Integer> findChildrenComponentIds(Collection<String> componentRootKeys){ if (componentRootKeys.isEmpty()) { return Collections.emptyList(); diff --git a/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java b/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java index 00102831f4e..458dd84f423 100644 --- a/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java @@ -259,4 +259,13 @@ public class ResourceDaoTest extends AbstractDaoTestCase { assertThat(dao.findChildrenComponentIds(newArrayList("unknown"))).isEmpty(); assertThat(dao.findChildrenComponentIds(Collections.<String>emptyList())).isEmpty(); } + + @Test + public void should_find_component_by_key(){ + setupData("fixture"); + + assertThat(dao.findByKey("org.struts:struts")).isNotNull(); + assertThat(dao.findByKey("org.struts:struts:org.struts.RequestContext")).isNotNull(); + assertThat(dao.findByKey("unknown")).isNull(); + } } |