Added Documentation and More Tests

This commit is contained in:
Mohsin Husen
2013-01-28 10:05:24 +00:00
parent 838aaa8be0
commit 67af1a1458
293 changed files with 41673 additions and 128 deletions

View File

@@ -13,6 +13,7 @@ public class SampleEntity {
private String type;
private String message;
private int rate;
private boolean available;
public String getId() {
return id;
@@ -46,6 +47,14 @@ public class SampleEntity {
this.rate = rate;
}
public boolean isAvailable() {
return available;
}
public void setAvailable(boolean available) {
this.available = available;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof SampleEntity)) {

View File

@@ -627,6 +627,4 @@ public class CriteriaQueryTest {
//then
assertThat(page.getTotalElements(),is(greaterThanOrEqualTo(1L)));
}
}

View File

@@ -2,6 +2,7 @@ package org.springframework.data.elasticsearch.repositories;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +16,10 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.apache.commons.lang.RandomStringUtils.randomNumeric;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
import static org.hamcrest.Matchers.*;
@@ -56,7 +61,7 @@ public class CustomMethodRepositoryTest {
}
@Test
public void shouldExecuteCustomMethodForNext(){
public void shouldExecuteCustomMethodForNot(){
//given
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntity();
@@ -68,7 +73,7 @@ public class CustomMethodRepositoryTest {
Page<SampleEntity> page = repository.findByTypeNot("test", new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(greaterThanOrEqualTo(1L)));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
@Test
@@ -114,4 +119,278 @@ public class CustomMethodRepositoryTest {
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
@Test
public void shouldExecuteCustomMethodWithBefore(){
//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);
//when
Page<SampleEntity> page = repository.findByRateBefore(10, new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
@Test
public void shouldExecuteCustomMethodWithAfter(){
//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);
//when
Page<SampleEntity> page = repository.findByRateAfter(10, new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
@Test
public void shouldExecuteCustomMethodWithLike(){
//given
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(documentId);
sampleEntity.setType("test");
sampleEntity.setRate(10);
sampleEntity.setMessage("foo");
repository.save(sampleEntity);
//when
Page<SampleEntity> page = repository.findByMessageLike("fo", new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
@Test
public void shouldExecuteCustomMethodForStartingWith(){
//given
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(documentId);
sampleEntity.setType("test");
sampleEntity.setRate(10);
sampleEntity.setMessage("foo");
repository.save(sampleEntity);
//when
Page<SampleEntity> page = repository.findByMessageStartingWith("fo", new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
@Test
public void shouldExecuteCustomMethodForEndingWith(){
//given
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(documentId);
sampleEntity.setType("test");
sampleEntity.setRate(10);
sampleEntity.setMessage("foo");
repository.save(sampleEntity);
//when
Page<SampleEntity> page = repository.findByMessageEndingWith("o", new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
@Test
public void shouldExecuteCustomMethodForContains(){
//given
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntity();
sampleEntity.setId(documentId);
sampleEntity.setType("test");
sampleEntity.setRate(10);
sampleEntity.setMessage("foo");
repository.save(sampleEntity);
//when
Page<SampleEntity> page = repository.findByMessageContaining("fo", new PageRequest(1, 10));
//then
assertThat(page, is(notNullValue()));
assertThat(page.getTotalElements(), is(equalTo(1L)));
}
// @Test
// @Ignore("Test failing due to java.lang.IllegalArgumentException: Invalid order syntax for part Message!")
// public void shouldExecuteCustomMethodForIn(){
// //given
// String documentId = randomNumeric(5);
// SampleEntity sampleEntity = new SampleEntity();
// sampleEntity.setId(documentId);
// sampleEntity.setType("test");
// sampleEntity.setMessage("foo");
// repository.save(sampleEntity);
//
// //given
// String documentId2 = randomNumeric(5);
// SampleEntity sampleEntity2 = new SampleEntity();
// sampleEntity2.setId(documentId2);
// sampleEntity2.setType("test");
// sampleEntity2.setMessage("bar");
// repository.save(sampleEntity2);
//
// List<String> ids = Arrays.asList(documentId,documentId2);
//
//
// //when
// Page<SampleEntity> page = repository.findByIdIn(ids, new PageRequest(1, 10));
// //then
// assertThat(page, is(notNullValue()));
// assertThat(page.getTotalElements(), is(equalTo(2L)));
// }
//
// @Test
// @Ignore("Test failing due to java.lang.IllegalArgumentException: Invalid order syntax for part Message!")
// public void shouldExecuteCustomMethodForNotIn(){
// //given
// String documentId = randomNumeric(5);
// SampleEntity sampleEntity = new SampleEntity();
// sampleEntity.setId(documentId);
// sampleEntity.setType("test");
// sampleEntity.setMessage("foo");
// repository.save(sampleEntity);
//
// //given
// String documentId2 = randomNumeric(5);
// SampleEntity sampleEntity2 = new SampleEntity();
// sampleEntity2.setId(documentId2);
// sampleEntity2.setType("test");
// sampleEntity2.setMessage("bar");
// repository.save(sampleEntity2);
//
// List<String> ids = Arrays.asList(documentId);
//
//
// //when
// Page<SampleEntity> page = repository.findByIdNotIn(ids, new PageRequest(1, 10));
// //then
// assertThat(page, is(notNullValue()));
// assertThat(page.getTotalElements(), is(equalTo(1L)));
// assertThat(page.getContent().get(0).getId(),is(documentId2));
// }
//
// @Test
// @Ignore("Test failing due to java.lang.IllegalArgumentException: Invalid order syntax for part Message!")
// public void shouldExecuteCustomMethodForTrue(){
// //given
// String documentId = randomNumeric(5);
// SampleEntity sampleEntity = new SampleEntity();
// sampleEntity.setId(documentId);
// sampleEntity.setType("test");
// sampleEntity.setMessage("foo");
// sampleEntity.setAvailable(true);
// repository.save(sampleEntity);
//
// //given
// String documentId2 = randomNumeric(5);
// SampleEntity sampleEntity2 = new SampleEntity();
// sampleEntity2.setId(documentId2);
// sampleEntity2.setType("test");
// sampleEntity2.setMessage("bar");
// sampleEntity2.setAvailable(false);
// repository.save(sampleEntity2);
// //when
// Page<SampleEntity> page = repository.findByAvailableTrue(new PageRequest(1, 10));
// //then
// assertThat(page, is(notNullValue()));
// assertThat(page.getTotalElements(), is(equalTo(1L)));
// }
//
// @Test
// @Ignore("Test failing due to java.lang.IllegalArgumentException: Invalid order syntax for part Message!")
// public void shouldExecuteCustomMethodForFalse(){
// //given
// String documentId = randomNumeric(5);
// SampleEntity sampleEntity = new SampleEntity();
// sampleEntity.setId(documentId);
// sampleEntity.setType("test");
// sampleEntity.setMessage("foo");
// sampleEntity.setAvailable(true);
// repository.save(sampleEntity);
//
// //given
// String documentId2 = randomNumeric(5);
// SampleEntity sampleEntity2 = new SampleEntity();
// sampleEntity2.setId(documentId2);
// sampleEntity2.setType("test");
// sampleEntity2.setMessage("bar");
// sampleEntity2.setAvailable(false);
// repository.save(sampleEntity2);
// //when
// Page<SampleEntity> page = repository.findByAvailableFalse(new PageRequest(1, 10));
// //then
// assertThat(page, is(notNullValue()));
// assertThat(page.getTotalElements(), is(equalTo(1L)));
// }
//
// @Test
// @Ignore("Test failing due to java.lang.IllegalArgumentException: Invalid order syntax for part Message!")
// public void shouldExecuteCustomMethodForOrderBy(){
// //given
// String documentId = randomNumeric(5);
// SampleEntity sampleEntity = new SampleEntity();
// sampleEntity.setId(documentId);
// sampleEntity.setType("test");
// sampleEntity.setMessage("foo");
// sampleEntity.setAvailable(true);
// repository.save(sampleEntity);
//
// //given
// String documentId2 = randomNumeric(5);
// SampleEntity sampleEntity2 = new SampleEntity();
// sampleEntity2.setId(documentId2);
// sampleEntity2.setType("test");
// sampleEntity2.setMessage("bar");
// sampleEntity2.setAvailable(false);
// repository.save(sampleEntity2);
// //when
// Page<SampleEntity> page = repository.findByMessageOrderByMessage("foo",new PageRequest(1, 10));
// //then
// assertThat(page, is(notNullValue()));
// assertThat(page.getTotalElements(), is(equalTo(1L)));
// }
//
// @Test
// public void testCustomMethodForBoolean(){
// //given
// String documentId = randomNumeric(5);
// SampleEntity sampleEntity = new SampleEntity();
// sampleEntity.setId(documentId);
// sampleEntity.setType("test");
// sampleEntity.setMessage("foo");
// sampleEntity.setAvailable(true);
// repository.save(sampleEntity);
//
// //given
// String documentId2 = randomNumeric(5);
// SampleEntity sampleEntity2 = new SampleEntity();
// sampleEntity2.setId(documentId2);
// sampleEntity2.setType("test");
// sampleEntity2.setMessage("bar");
// sampleEntity2.setAvailable(false);
// repository.save(sampleEntity2);
// //when
// Page<SampleEntity> page = repository.findByAvailable(false,new PageRequest(1, 10));
// //then
// assertThat(page, is(notNullValue()));
// assertThat(page.getTotalElements(), is(equalTo(1L)));
// }
}

View File

@@ -7,6 +7,8 @@ import org.springframework.data.elasticsearch.SampleEntity;
import org.springframework.data.elasticsearch.annotations.Query;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;
public interface SampleCustomMethodRepository extends ElasticsearchRepository<SampleEntity,String> {
Page<SampleEntity> findByType(String type, Pageable pageable);
@@ -16,8 +18,30 @@ public interface SampleCustomMethodRepository extends ElasticsearchRepository<Sa
@Query("{\"bool\" : {\"must\" : {\"field\" : {\"message\" : \"?0\"}}}}")
Page<SampleEntity> findByMessage(String message, Pageable pageable);
// Page<SampleEntity> findByAvailable(boolean available, Pageable pageable);
Page<SampleEntity> findByRateLessThan(int rate, Pageable pageable);
Page<SampleEntity> findByRateBefore(int rate, Pageable pageable);
Page<SampleEntity> findByRateAfter(int rate, Pageable pageable);
Page<SampleEntity> findByMessageLike(String message, Pageable pageable);
Page<SampleEntity> findByMessageStartingWith(String message, Pageable pageable);
Page<SampleEntity> findByMessageEndingWith(String message, Pageable pageable);
Page<SampleEntity> findByMessageContaining(String message, Pageable pageable);
// Page<SampleEntity> findByIdIn(List<String> ids, Pageable pageable);
//
// Page<SampleEntity> findByIdNotIn(List<String> messages, Pageable pageable);
//
// Page<SampleEntity> findByAvailableTrue(Pageable pageable);
//
// Page<SampleEntity> findByAvailableFalse(Pageable pageable);
//
// Page<SampleEntity> findByMessageOrderByMessage(String message,Pageable pageable);
}