package org.springframework.data.simpledb.repository.query; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import java.util.List; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.simpledb.domain.SimpleDbUser; import org.springframework.data.simpledb.repository.util.SimpleDbUserBuilder; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:simpledb-consistent-repository-context.xml") public class AnnotatedSingleResultQueryTest { @Autowired AnnotatedSingleResultQueryRepository repository; static List<SimpleDbUser> simpleDbUsers; //Used for performance reasons to delete after class all simpleDbUsers created static AnnotatedSingleResultQueryRepository staticRepository; @Before public void setUp() { //for performance reasons create 3 entities once and use them to test all queries if(simpleDbUsers == null){ simpleDbUsers = SimpleDbUserBuilder.createListOfItems(3); repository.save(simpleDbUsers); } } @After public void setUpStaticRepository(){ staticRepository = repository; } @AfterClass public static void tearDown() { staticRepository.deleteAll(); } @Test public void customLongCount_should_return_the_number_of_users_represented_as_Long() { //created in setup a list of 3 SimpleDbUser - first Item_0 long result = repository.customLongCount(); assertNotNull(result); assertEquals(simpleDbUsers.size(), result); } @Test public void customSelectOneUser_should_return_one_user() { //created in setup a list of 3 SimpleDbUser - first Item_0 SimpleDbUser result = repository.customSelectOneUser(); assertNotNull(result); assertEquals(simpleDbUsers.get(0), result); } @Test public void partialPrimitiveFieldSelect_should_return_a_single_primitive_field() { //created in setup a list of 3 SimpleDbUser - first Item_0 float result = repository.partialPrimitiveFieldSelect(); assertNotNull(result); assertThat(result, is( simpleDbUsers.get(0).getPrimitiveField())); } }