]> source.dussan.org Git - sonarqube.git/commitdiff
Add ResourceDao#getResource(ResourceQuery query)
authorSimon Brandhof <simon.brandhof@gmail.com>
Thu, 12 Jul 2012 08:06:55 +0000 (10:06 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Thu, 12 Jul 2012 08:09:36 +0000 (10:09 +0200)
sonar-core/src/main/java/org/sonar/core/resource/ResourceDao.java
sonar-core/src/test/java/org/sonar/core/resource/ResourceDaoTest.java

index 260b4abcb7e2df990f2039ec7963ee94ffd4ad41..58763fb621e7324257f91fd9a396f43aa0467dd3 100644 (file)
@@ -41,6 +41,18 @@ public class ResourceDao {
     }
   }
 
+  /**
+   * Return a single result or null. If the request returns multiple rows, then
+   * the first row is returned.
+   */
+  public ResourceDto getResource(ResourceQuery query) {
+    List<ResourceDto> resources = getResources(query);
+    if (!resources.isEmpty()) {
+      return resources.get(0);
+    }
+    return null;
+  }
+
   public List<Long> getResourceIds(ResourceQuery query) {
     SqlSession session = mybatis.openSession();
     try {
@@ -92,7 +104,7 @@ public class ResourceDao {
     ResourceMapper mapper = session.getMapper(ResourceMapper.class);
     try {
       for (ResourceDto resource : resources) {
-        if (resource.getId()==null) {
+        if (resource.getId() == null) {
           mapper.insert(resource);
         } else {
           mapper.update(resource);
index 9899b31cd2f30d3335ad31c142e0768e8ba539ce..f33b4f30a9a678c329b4e4d4589dc3a2b2ed566d 100644 (file)
@@ -57,7 +57,7 @@ public class ResourceDaoTest extends AbstractDaoTestCase {
   }
 
   @Test
-  public void getResource() {
+  public void get_resource_by_id() {
     setupData("fixture");
 
     ResourceDto resource = dao.getResource(1L);
@@ -104,9 +104,12 @@ public class ResourceDaoTest extends AbstractDaoTestCase {
   public void getResources_filter_by_key() {
     setupData("fixture");
 
-    List<ResourceDto> resources = dao.getResources(ResourceQuery.create().setKey("org.struts:struts-core"));
+    ResourceQuery query = ResourceQuery.create().setKey("org.struts:struts-core");
+    List<ResourceDto> resources = dao.getResources(query);
     assertThat(resources).hasSize(1);
     assertThat(resources.get(0).getKey()).isEqualTo("org.struts:struts-core");
+
+    assertThat(dao.getResource(query).getKey()).isEqualTo("org.struts:struts-core");
   }
 
   @Test