package org.springframework.data.simpledb.query;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.data.simpledb.core.SimpleDbOperations;
public class SimpleDbQueryRunnerTest {
@Test(expected = IllegalArgumentException.class)
public void executeSingleResultQuery_should_fail_if_multiple_results_are_retrieved() {
SimpleDbOperations simpleDbOperations = Mockito.mock(SimpleDbOperations.class);
List<SampleEntity> sampleMultipleResults = new ArrayList<SampleEntity>();
sampleMultipleResults.add(new SampleEntity());
sampleMultipleResults.add(new SampleEntity());
Mockito.when(simpleDbOperations.find(Mockito.same(SampleEntity.class), Mockito.anyString())).thenReturn(
sampleMultipleResults);
SimpleDbQueryRunner runner = new SimpleDbQueryRunner((SimpleDbOperations) simpleDbOperations,
SampleEntity.class, null);
runner.executeSingleResultQuery();
}
@Test
public void getSingleResult_should_return_null_for_empty_list() {
SimpleDbQueryRunner runner = new SimpleDbQueryRunner(null, SampleEntity.class, null);
final Object result = runner.getSingleResult(new ArrayList<SampleEntity>());
assertNull(result);
}
@Test
public void getSingleResult_should_return_single_value_from_list_with_one_element() {
SimpleDbQueryRunner runner = new SimpleDbQueryRunner(null, SampleEntity.class, null);
final ArrayList<SampleEntity> results = new ArrayList<SampleEntity>();
results.add(new SampleEntity());
final Object result = runner.getSingleResult(results);
assertNotNull(result);
}
@Test(expected = IllegalArgumentException.class)
public void getSingleResult_should_fail_for_list_with_multiple_elements() {
SimpleDbQueryRunner runner = new SimpleDbQueryRunner(null, SampleEntity.class, null);
final ArrayList<SampleEntity> results = new ArrayList<SampleEntity>();
results.add(new SampleEntity());
results.add(new SampleEntity());
runner.getSingleResult(results);
}
}