use of org.springframework.data.domain.Sort.Order in project spring-data-commons by spring-projects.
the class QSortUnitTests method concatenatesPlainSortCorrectly.
// DATACMNS-402
@Test
public void concatenatesPlainSortCorrectly() {
QUser user = QUser.user;
QSort sort = new QSort(user.firstname.asc());
Sort result = sort.and(Sort.by(Direction.ASC, "lastname"));
assertThat(result).hasSize(2);
assertThat(result).contains(new Order(Direction.ASC, "lastname"), new Order(Direction.ASC, "firstname"));
}
use of org.springframework.data.domain.Sort.Order in project spring-data-commons by spring-projects.
the class QSortUnitTests method shouldCreateSortForReallyDeepNestedPathCorrectly.
// DATACMNS-621
@Test
public void shouldCreateSortForReallyDeepNestedPathCorrectly() {
QSort sort = new QSort(wrapperToWrapWrapperForUserWrapper.wrapperForUserWrapper.wrapper.user.firstname.asc());
assertThat(sort).contains(new Order(Direction.ASC, "wrapperForUserWrapper.wrapper.user.firstname"));
}
use of org.springframework.data.domain.Sort.Order in project spring-data-commons by spring-projects.
the class SortUnitTests method ordersWithDifferentIgnoreCaseDoNotEqual.
// DATACMNS-436
@Test
public void ordersWithDifferentIgnoreCaseDoNotEqual() {
Order foo = Order.by("foo");
Order fooIgnoreCase = Order.by("foo").ignoreCase();
assertThat(foo).isNotEqualTo(fooIgnoreCase);
assertThat(foo.hashCode()).isNotEqualTo(fooIgnoreCase.hashCode());
}
use of org.springframework.data.domain.Sort.Order in project spring-data-commons by spring-projects.
the class SortHandlerMethodArgumentResolver method foldIntoExpressions.
/**
* Folds the given {@link Sort} instance into a {@link List} of sort expressions, accumulating {@link Order} instances
* of the same direction into a single expression if they are in order.
*
* @param sort must not be {@literal null}.
* @return
*/
protected List<String> foldIntoExpressions(Sort sort) {
List<String> expressions = new ArrayList<>();
ExpressionBuilder builder = null;
for (Order order : sort) {
Direction direction = order.getDirection();
if (builder == null) {
builder = new ExpressionBuilder(direction);
} else if (!builder.hasSameDirectionAs(order)) {
builder.dumpExpressionIfPresentInto(expressions);
builder = new ExpressionBuilder(direction);
}
builder.add(order.getProperty());
}
return builder == null ? Collections.emptyList() : builder.dumpExpressionIfPresentInto(expressions);
}
use of org.springframework.data.domain.Sort.Order in project spring-data-commons by spring-projects.
the class SortHandlerMethodArgumentResolverUnitTests method getRequestWithSort.
private static NativeWebRequest getRequestWithSort(Sort sort, String qualifier) {
MockHttpServletRequest request = new MockHttpServletRequest();
if (sort == null) {
return new ServletWebRequest(request);
}
for (Order order : sort) {
String prefix = StringUtils.hasText(qualifier) ? qualifier + "_" : "";
request.addParameter(prefix + "sort", String.format("%s,%s", order.getProperty(), order.getDirection().name()));
}
return new ServletWebRequest(request);
}
Aggregations