diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index d6c433b97..bb861df5f 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -1,5 +1,5 @@ /* - * Copyright 2008-2016 the original author or authors. + * Copyright 2008-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,6 +34,7 @@ import org.springframework.util.StringUtils; * * @author Oliver Gierke * @author Thomas Darimont + * @author Mark Paluch */ public class Sort implements Iterable, Serializable { @@ -432,13 +433,44 @@ public class Sort implements Iterable new Order(it, propertyPath.toDotPath())) - .orElseGet(() -> new Order(propertyPath.toDotPath())); + .orElseGet(() -> Order.by(propertyPath.toDotPath())); }).orElseGet(() -> direction// .map(it -> new Order(it, StringUtils.uncapitalize(propertySource))) - .orElseGet(() -> new Order(StringUtils.uncapitalize(propertySource)))); + .orElseGet(() -> Order.by(StringUtils.uncapitalize(propertySource)))); } /** diff --git a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java index 515307ed2..4d2777033 100644 --- a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java @@ -238,7 +238,7 @@ public class SortHandlerMethodArgumentResolver implements SortArgumentResolver { return Optional.empty(); } - return Optional.of(direction.map(it -> new Order(it, property)).orElseGet(() -> new Order(property))); + return Optional.of(direction.map(it -> new Order(it, property)).orElseGet(() -> Order.by(property))); } /** diff --git a/src/test/java/org/springframework/data/domain/SortUnitTests.java b/src/test/java/org/springframework/data/domain/SortUnitTests.java index 57405d0af..7c0bee0d0 100755 --- a/src/test/java/org/springframework/data/domain/SortUnitTests.java +++ b/src/test/java/org/springframework/data/domain/SortUnitTests.java @@ -28,6 +28,7 @@ import org.springframework.data.domain.Sort.Order; * @author Oliver Gierke * @author Kevin Raymond * @author Thomas Darimont + * @author Mark Paluch */ public class SortUnitTests { @@ -99,14 +100,24 @@ public class SortUnitTests { assertThat(sort).containsExactly(new Sort.Order("foo")); } - @Test // DATACMNS-281 + @Test // DATACMNS-281, DATACMNS-1021 public void configuresIgnoreCaseForOrder() { - assertThat(new Order(Direction.ASC, "foo").ignoreCase().isIgnoreCase()).isTrue(); + assertThat(Order.asc("foo").ignoreCase().isIgnoreCase()).isTrue(); } - @Test // DATACMNS-281 + @Test // DATACMNS-281, DATACMNS-1021 public void orderDoesNotIgnoreCaseByDefault() { + assertThat(new Order(Direction.ASC, "foo").isIgnoreCase()).isFalse(); + assertThat(Order.asc("foo").isIgnoreCase()).isFalse(); + assertThat(Order.desc("foo").isIgnoreCase()).isFalse(); + } + + @Test // DATACMNS-1021 + public void createsOrderWithDirection() { + + assertThat(Order.asc("foo").getDirection()).isEqualTo(Direction.ASC); + assertThat(Order.desc("foo").getDirection()).isEqualTo(Direction.DESC); } @Test // DATACMNS-436