package org.springframework.data.simpledb.query; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import org.junit.Test; public class QueryUtilsEscapeTest { @Test public void escapeQueryAttributes_should_convert_item_id() { final String convertedQuery = QueryUtils.escapeQueryAttributes("select customer_id from customers", "customer_id"); assertThat(convertedQuery, is("select itemName() from customers")); } @Test public void escapeQueryAttributes_should_work_without_item_id() { final String convertedQuery = QueryUtils.escapeQueryAttributes("select * from customers", "customer_id"); assertThat(convertedQuery, is("select * from customers")); } @Test public void escapeQueryAttributes_should_convert_item_id_for_complex_queries() { final String convertedQuery = QueryUtils.escapeQueryAttributes( "select customer_id from customers where customer_id > 4 and age = 3", "customer_id"); assertThat(convertedQuery, is("select itemName() from customers where itemName() > 4 and age = 3")); } @Test public void escapeQueryAttributes_should_not_convert_overlapping_id_field_names() { final String convertedQuery = QueryUtils.escapeQueryAttributes("select itemName() from customers", "itemName"); assertThat(convertedQuery, is("select itemName() from customers")); } @Test public void escapeQueryAttributes_should_convert_last_occurence_of_item_id() { final String convertedQuery = QueryUtils.escapeQueryAttributes("select * from customers order by itemName", "itemName"); assertThat(convertedQuery, is("select * from customers order by itemName()")); } }