aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/dependency/DependencyMapper.java4
-rw-r--r--sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java7
-rw-r--r--sonar-core/src/test/java/org/sonar/core/dependency/DependencyMapperTest.java32
3 files changed, 42 insertions, 1 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/dependency/DependencyMapper.java b/sonar-core/src/main/java/org/sonar/core/dependency/DependencyMapper.java
index cea1d23f7c7..e2f2d450ad9 100644
--- a/sonar-core/src/main/java/org/sonar/core/dependency/DependencyMapper.java
+++ b/sonar-core/src/main/java/org/sonar/core/dependency/DependencyMapper.java
@@ -19,8 +19,12 @@
*/
package org.sonar.core.dependency;
+import org.apache.ibatis.session.ResultHandler;
+
import java.util.List;
public interface DependencyMapper {
List<DependencyDto> selectAll();
+
+ void selectAll(ResultHandler handler);
}
diff --git a/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java b/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java
index aa26bf9d00b..bd54734db46 100644
--- a/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java
+++ b/sonar-core/src/main/java/org/sonar/core/resource/ResourceMapper.java
@@ -19,6 +19,8 @@
*/
package org.sonar.core.resource;
+import org.apache.ibatis.session.ResultHandler;
+
import java.util.List;
public interface ResourceMapper {
@@ -37,4 +39,9 @@ public interface ResourceMapper {
* @since 3.0
*/
List<Long> selectResourceIds(ResourceQuery query);
+
+ /**
+ * @since 3.2
+ */
+ void selectResources(ResourceQuery query, ResultHandler resultHandler);
}
diff --git a/sonar-core/src/test/java/org/sonar/core/dependency/DependencyMapperTest.java b/sonar-core/src/test/java/org/sonar/core/dependency/DependencyMapperTest.java
index 4dd1307dcb9..45f408e7824 100644
--- a/sonar-core/src/test/java/org/sonar/core/dependency/DependencyMapperTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/dependency/DependencyMapperTest.java
@@ -19,6 +19,9 @@
*/
package org.sonar.core.dependency;
+import com.google.common.collect.Lists;
+import org.apache.ibatis.session.ResultContext;
+import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.sonar.core.persistence.DaoTestCase;
@@ -51,5 +54,32 @@ public class DependencyMapperTest extends DaoTestCase {
MyBatis.closeQuietly(session);
}
}
-}
+ @Test
+ public void should_use_result_handler() {
+ setupData("fixture");
+
+ final List<DependencyDto> dependencies = Lists.newArrayList();
+
+ SqlSession session = getMyBatis().openSession();
+ try {
+ session.getMapper(DependencyMapper.class).selectAll(new ResultHandler() {
+ public void handleResult(ResultContext context) {
+ dependencies.add((DependencyDto) context.getResultObject());
+ }
+ });
+ } finally {
+ MyBatis.closeQuietly(session);
+ }
+
+ assertThat(dependencies).hasSize(2);
+
+ DependencyDto dep = dependencies.get(0);
+ assertThat(dep.getUsage()).isEqualTo("compile");
+ assertThat(dep.getFromResourceId()).isEqualTo(100L);
+ assertThat(dep.getFromVersion()).isEqualTo("1.0");
+ assertThat(dep.getToResourceId()).isEqualTo(101L);
+ assertThat(dep.getToVersion()).isEqualTo("3.0");
+ assertThat(dep.getId()).isEqualTo(1L);
+ }
+}