Add documentation and tests

This commit is contained in:
Rizwan Idrees
2013-01-25 17:37:02 +00:00
parent 75189a656d
commit e7b097caee
12 changed files with 2000 additions and 723 deletions

View File

@@ -23,7 +23,6 @@ import static org.junit.Assert.assertTrue;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:elasticsearch-template-test.xml")
@Ignore
public class CriteriaQueryTest {
@Resource
@@ -476,13 +475,13 @@ public class CriteriaQueryTest {
elasticsearchTemplate.refresh(SampleEntity.class,true);
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").between(350,null));
//when
SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(criteriaQuery, SampleEntity.class);
//then
assertThat(sampleEntity,is(notNullValue()));
assertThat(page,is(notNullValue()));
assertThat(page.getTotalElements(),is(greaterThanOrEqualTo(1L)));
}
@Test
@Ignore
public void testBetweenWithoutLowerBound() {
//given
List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
@@ -513,13 +512,13 @@ public class CriteriaQueryTest {
elasticsearchTemplate.refresh(SampleEntity.class,true);
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").between(null,550));
//when
SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(criteriaQuery, SampleEntity.class);
//then
assertThat(sampleEntity,is(notNullValue()));
assertThat(page,is(notNullValue()));
assertThat(page.getTotalElements(),is(greaterThanOrEqualTo(1L)));
}
@Test
@Ignore
public void testLessThanEqauls() {
//given
List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
@@ -550,13 +549,13 @@ public class CriteriaQueryTest {
elasticsearchTemplate.refresh(SampleEntity.class,true);
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").lessThanEqual(750));
//when
SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(criteriaQuery, SampleEntity.class);
//then
assertThat(sampleEntity,is(notNullValue()));
assertThat(page,is(notNullValue()));
assertThat(page.getTotalElements(),is(greaterThanOrEqualTo(1L)));
}
@Test
@Ignore
public void testGreaterThanEqauls() {
//given
List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
@@ -587,9 +586,10 @@ public class CriteriaQueryTest {
elasticsearchTemplate.refresh(SampleEntity.class,true);
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").greaterThanEqual(950));
//when
SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(criteriaQuery, SampleEntity.class);
//then
assertThat(sampleEntity,is(notNullValue()));
assertThat(page,is(notNullValue()));
assertThat(page.getTotalElements(),is(greaterThanOrEqualTo(1L)));
}
@Test

View File

@@ -1,20 +1,23 @@
package org.springframework.data.elasticsearch.repositories;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.SampleEntity;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import static org.apache.commons.lang.RandomStringUtils.randomNumeric;
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertThat;
@RunWith(SpringJUnit4ClassRunner.class)
@@ -24,6 +27,18 @@ public class CustomMethodRepositoryTest {
@Resource
private SampleCustomMethodRepository repository;
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
@Before
public void before(){
elasticsearchTemplate.createIndex(SampleEntity.class);
DeleteQuery deleteQuery = new DeleteQuery();
deleteQuery.setElasticsearchQuery(matchAllQuery());
elasticsearchTemplate.delete(deleteQuery,SampleEntity.class);
elasticsearchTemplate.refresh(SampleEntity.class, true);
}
@Test
public void shouldExecuteCustomMethod(){
//given
@@ -40,6 +55,22 @@ public class CustomMethodRepositoryTest {
assertThat(page.getTotalElements(), is(greaterThanOrEqualTo(1L)));
}
@Test
public void shouldExecuteCustomMethodForNext(){
//given
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(documentId);
sampleEntity.setType("some");
sampleEntity.setMessage("some message");
repository.save(sampleEntity);
//when
Page<SampleEntity> page = repository.findByTypeNot("test", new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(greaterThanOrEqualTo(1L)));
}
@Test
public void shouldExecuteCustomMethodWithQuery(){
//given
@@ -56,4 +87,31 @@ public class CustomMethodRepositoryTest {
assertThat(page.getTotalElements(), is(greaterThanOrEqualTo(1L)));
}
@Test
public void shouldExecuteCustomMethodWithLessThan(){
//given
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(documentId);
sampleEntity.setType("test");
sampleEntity.setRate(10);
sampleEntity.setMessage("some message");
repository.save(sampleEntity);
String documentId2 = randomNumeric(5);
SampleEntity sampleEntity2 = new SampleEntity();
sampleEntity2.setId(documentId2);
sampleEntity2.setType("test");
sampleEntity2.setRate(20);
sampleEntity2.setMessage("some message");
repository.save(sampleEntity2);
//when
Page<SampleEntity> page = repository.findByRateLessThan(10, new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
}

View File

@@ -11,7 +11,13 @@ public interface SampleCustomMethodRepository extends ElasticsearchRepository<Sa
Page<SampleEntity> findByType(String type, Pageable pageable);
Page<SampleEntity> findByTypeNot(String type, Pageable pageable);
@Query("{\"bool\" : {\"must\" : {\"field\" : {\"message\" : \"?0\"}}}}")
Page<SampleEntity> findByMessage(String message, Pageable pageable);
Page<SampleEntity> findByRateLessThan(int rate, Pageable pageable);
Page<SampleEntity> findByRateBefore(int rate, Pageable pageable);
}