Browse Source

Remove `Assert#notNull` for nullable Link

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
pull/3454/head
Tran Ngoc Nhan 19 hours ago
parent
commit
75b2a88ba8
  1. 9
      src/main/java/org/springframework/data/web/SlicedResourcesAssembler.java
  2. 27
      src/test/java/org/springframework/data/web/SlicedResourcesAssemblerUnitTest.java

9
src/main/java/org/springframework/data/web/SlicedResourcesAssembler.java

@ -143,10 +143,11 @@ public class SlicedResourcesAssembler<T> @@ -143,10 +143,11 @@ public class SlicedResourcesAssembler<T>
* @param slice must not be {@literal null}.
* @param assembler must not be {@literal null}.
* @param link must not be {@literal null}.
* @return
* @return a {@link SlicedModel} must not be {@literal null}.
*/
public <R extends RepresentationModel<?>> SlicedModel<R> toModel(Slice<T> slice,
RepresentationModelAssembler<T, R> assembler, Link link) {
Assert.notNull(link, "Link must not be null");
return createModel(slice, assembler, link);
}
@ -166,15 +167,14 @@ public class SlicedResourcesAssembler<T> @@ -166,15 +167,14 @@ public class SlicedResourcesAssembler<T>
*
* @param slice must not be {@literal null}, content must be empty.
* @param type must not be {@literal null}.
* @param link must not be {@literal null}.
* @return
* @param link can be {@literal null}.
* @return a {@link SlicedModel} must not be {@literal null}.
*/
public SlicedModel<?> toEmptyModel(Slice<?> slice, Class<?> type, @Nullable Link link) {
Assert.notNull(slice, "Slice must not be null");
Assert.isTrue(!slice.hasContent(), "Slice must not have any content");
Assert.notNull(type, "Type must not be null");
Assert.notNull(link, "Link must not be null");
SliceMetadata metadata = asSliceMetadata(slice);
@ -187,6 +187,7 @@ public class SlicedResourcesAssembler<T> @@ -187,6 +187,7 @@ public class SlicedResourcesAssembler<T>
@Deprecated
public SlicedModel<?> toEmptyModel(Slice<?> slice, Class<?> type, Optional<Link> link) {
Assert.notNull(link, "Link must not be null");
return toEmptyModel(slice, type, link.orElse(null));
}

27
src/test/java/org/springframework/data/web/SlicedResourcesAssemblerUnitTest.java

@ -23,6 +23,7 @@ import java.util.Collections; @@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.data.domain.AbstractPageRequest;
@ -259,6 +260,32 @@ class SlicedResourcesAssemblerUnitTest { @@ -259,6 +260,32 @@ class SlicedResourcesAssemblerUnitTest {
.isEqualTo("http://localhost/sample?foo=bar&page=0&size=1");
}
@Test // GH-3452
void emptySliceCreatorNullLink() {
var result = assembler.toEmptyModel(EMPTY_SLICE, Person.class, (Link) null);
var content = result.getContent();
assertThat(content).hasSize(1);
var element = content.iterator().next();
assertThat(element).isInstanceOf(EmbeddedWrapper.class);
assertThat(((EmbeddedWrapper) element).getRelTargetType()).isEqualTo(Person.class);
}
@Test // GH-3452
@SuppressWarnings("deprecation")
void emptySliceCreatorRejectsNullOptionalLink() {
assertThatIllegalArgumentException()
.isThrownBy(() -> assembler.toEmptyModel(EMPTY_SLICE, Person.class, (Optional<Link>) null));
}
@Test // GH-3452
void createsSliceRejectsNullLink() {
assertThatIllegalArgumentException().isThrownBy(() -> assembler.toModel(createSlice(1), (Link) null));
}
private static Slice<Person> createSlice(int index) {
Pageable request = PageRequest.of(index, 1);

Loading…
Cancel
Save