package org.springframework.data.simpledb.core;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
import org.junit.Test;
import org.springframework.data.domain.Sort;
import org.springframework.data.simpledb.core.domain.SimpleDbSampleEntity;
public class QueryBuilderTest {
@Test
public void should_create_correct_queries_if_no_other_clauses_are_specified() throws Exception {
QueryBuilder builder = new QueryBuilder(SimpleDbSampleEntity.entityInformation());
String returnedQuery = builder.toString();
assertEquals("select * from `simpleDbSampleEntity`", returnedQuery);
}
@Test
public void should_include_sort_clause_if_requested() throws Exception {
Sort sort = new Sort(Sort.Direction.ASC, "testField");
QueryBuilder builder = new QueryBuilder(SimpleDbSampleEntity.entityInformation());
builder.with(sort);
String returnedQuery = builder.toString();
assertThat(returnedQuery, containsString("where testField is not null order by testField asc"));
}
@Test
public void should_include_count_clause_if_requested() throws Exception {
QueryBuilder builder = new QueryBuilder(SimpleDbSampleEntity.entityInformation(), true);
String returnedQuery = builder.toString();
assertThat(returnedQuery, containsString("select count(*) from"));
}
@Test
public void should_include_limited_items_if_requested() throws Exception {
QueryBuilder builder = new QueryBuilder(SimpleDbSampleEntity.entityInformation());
builder.withIds(Arrays.asList(new String[] { "id1", "id2" }));
String returnedQuery = builder.toString();
assertThat(returnedQuery, containsString("where (itemName()='id1' or itemName()='id2')"));
}
}