From 1ee262809700bca0cfe18230263ae5e967d6f78d Mon Sep 17 00:00:00 2001 From: Henrique Cipriano Date: Tue, 2 Feb 2021 00:10:14 -0300 Subject: [PATCH] Fix in SingleEntityQuery to prevent return of list with null element (return a empty list instead) --- .../query/AbstractSingleEntityQuery.java | 4 +++- .../query/AbstractSingleEntityQueryTest.java | 24 ++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQuery.java b/src/main/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQuery.java index c8e45d42..12ac9e1c 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQuery.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQuery.java @@ -17,6 +17,7 @@ import org.socialsignin.spring.data.dynamodb.core.DynamoDBOperations; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -28,6 +29,7 @@ public AbstractSingleEntityQuery(DynamoDBOperations dynamoDBOperations, Class @Override public List getResultList() { - return Arrays.asList(getSingleResult()); + T result = getSingleResult(); + return result != null ? Arrays.asList(result) : new ArrayList<>(); } } diff --git a/src/test/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQueryTest.java b/src/test/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQueryTest.java index a0c668dd..6c601166 100644 --- a/src/test/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQueryTest.java +++ b/src/test/java/org/socialsignin/spring/data/dynamodb/query/AbstractSingleEntityQueryTest.java @@ -15,7 +15,6 @@ */ package org.socialsignin.spring.data.dynamodb.query; -import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.socialsignin.spring.data.dynamodb.core.DynamoDBOperations; @@ -29,27 +28,36 @@ public class AbstractSingleEntityQueryTest { @Mock private DynamoDBOperations dynamoDBOperations; - @Mock - private User entity; + + private final User entity = new User(); private AbstractSingleEntityQuery underTest; - @Before - public void setUp() { + @Test + public void testGetResultList() { underTest = new AbstractSingleEntityQuery(dynamoDBOperations, User.class) { @Override public User getSingleResult() { return entity; } }; - } - @Test - public void testGetResultList() { List actual = underTest.getResultList(); assertEquals(1, actual.size()); assertEquals(entity, actual.get(0)); } + @Test + public void testGetResultListEmpty() { + underTest = new AbstractSingleEntityQuery(dynamoDBOperations, User.class) { + @Override + public User getSingleResult() { return null; } + }; + + List actual = underTest.getResultList(); + + assertEquals(0, actual.size()); + } + }