From 07735ffdac7b42beb97ffae338798409cc317822 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Fri, 30 Aug 2013 13:55:16 +0200 Subject: [PATCH] DATAGRAPH-259 Handling empty results for QueryResultBuilder and ResultConverter --- .../data/neo4j/conversion/QueryResultBuilder.java | 1 + .../neo4j/conversion/QueryResultBuilderTests.java | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/conversion/QueryResultBuilder.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/conversion/QueryResultBuilder.java index 62da9b90c..23754a75e 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/conversion/QueryResultBuilder.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/conversion/QueryResultBuilder.java @@ -92,6 +92,7 @@ public class QueryResultBuilder implements Result { public R singleOrNull() { try { final T value = IteratorUtil.singleOrNull(result); + if (value==null) return null; return convert(value); } finally { closeIfNeeded(); diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/conversion/QueryResultBuilderTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/conversion/QueryResultBuilderTests.java index 131b3fa0c..5861ba226 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/conversion/QueryResultBuilderTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/conversion/QueryResultBuilderTests.java @@ -17,9 +17,15 @@ package org.springframework.data.neo4j.conversion; import org.junit.Before; import org.junit.Test; +import org.springframework.data.neo4j.annotation.MapResult; +import org.springframework.data.neo4j.support.conversion.EntityResultConverter; + +import java.util.Collections; +import java.util.Map; import static java.util.Arrays.asList; import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import static org.springframework.data.neo4j.conversion.QueryResultBuilder.from; @@ -32,6 +38,11 @@ public class QueryResultBuilderTests { private final DefaultConverter defaultConverter = new DefaultConverter(); private QueryResultBuilder result = new QueryResultBuilder(asList(1, 2, 3)); + @MapResult + interface TestResult { + Integer getValue(); + } + @Before public void setUp() throws Exception { } @@ -47,7 +58,8 @@ public class QueryResultBuilderTests { @Test public void testSingleOrNull() throws Exception { - + QueryResultBuilder> builder = new QueryResultBuilder>(Collections.>emptyList(), new EntityResultConverter, Object>(null)); + assertThat(builder.to(TestResult.class).singleOrNull(), is(nullValue())); } @Test