This commit is contained in:
Stéphane Nicoll
2024-01-15 11:17:11 +01:00
parent e1236a8672
commit 0c42965fc3
71 changed files with 543 additions and 828 deletions

View File

@@ -138,19 +138,15 @@ class ResourceHandlerRegistryTests {
this.registration.resourceChain(true).addResolver(mockResolver).addTransformer(mockTransformer);
ResourceWebHandler handler = getHandler("/resources/**");
List<ResourceResolver> resolvers = handler.getResourceResolvers();
assertThat(resolvers).hasSize(4);
assertThat(resolvers).element(0).isInstanceOf(CachingResourceResolver.class);
CachingResourceResolver cachingResolver = (CachingResourceResolver) resolvers.get(0);
assertThat(cachingResolver.getCache()).isInstanceOf(ConcurrentMapCache.class);
assertThat(resolvers).element(1).isEqualTo(mockResolver);
assertThat(resolvers).element(2).isInstanceOf(WebJarsResourceResolver.class);
assertThat(resolvers).element(3).isInstanceOf(PathResourceResolver.class);
List<ResourceTransformer> transformers = handler.getResourceTransformers();
assertThat(transformers).hasSize(2);
assertThat(transformers.get(0)).isInstanceOf(CachingResourceTransformer.class);
assertThat(transformers.get(1)).isEqualTo(mockTransformer);
assertThat(handler.getResourceResolvers()).satisfiesExactly(
zero -> assertThat(zero).isInstanceOfSatisfying(CachingResourceResolver.class,
cachingResolver -> assertThat(cachingResolver.getCache()).isInstanceOf(ConcurrentMapCache.class)),
one -> assertThat(one).isEqualTo(mockResolver),
two -> assertThat(two).isInstanceOf(WebJarsResourceResolver.class),
three -> assertThat(three).isInstanceOf(PathResourceResolver.class));
assertThat(handler.getResourceTransformers()).satisfiesExactly(
zero -> assertThat(zero).isInstanceOf(CachingResourceTransformer.class),
one -> assertThat(one).isEqualTo(mockTransformer));
Mockito.verify(mockTransformer).setResourceUrlProvider(resourceUrlProvider);
}
@@ -159,13 +155,9 @@ class ResourceHandlerRegistryTests {
this.registration.resourceChain(false);
ResourceWebHandler handler = getHandler("/resources/**");
List<ResourceResolver> resolvers = handler.getResourceResolvers();
assertThat(resolvers).hasSize(2);
assertThat(resolvers).element(0).isInstanceOf(WebJarsResourceResolver.class);
assertThat(resolvers).element(1).isInstanceOf(PathResourceResolver.class);
List<ResourceTransformer> transformers = handler.getResourceTransformers();
assertThat(transformers).isEmpty();
assertThat(handler.getResourceResolvers()).hasExactlyElementsOfTypes(
WebJarsResourceResolver.class, PathResourceResolver.class);
assertThat(handler.getResourceTransformers()).isEmpty();
}
@Test
@@ -177,17 +169,13 @@ class ResourceHandlerRegistryTests {
this.registration.resourceChain(true).addResolver(versionResolver);
ResourceWebHandler handler = getHandler("/resources/**");
List<ResourceResolver> resolvers = handler.getResourceResolvers();
assertThat(resolvers).hasSize(4);
assertThat(resolvers).element(0).isInstanceOf(CachingResourceResolver.class);
assertThat(resolvers).element(1).isSameAs(versionResolver);
assertThat(resolvers).element(2).isInstanceOf(WebJarsResourceResolver.class);
assertThat(resolvers).element(3).isInstanceOf(PathResourceResolver.class);
List<ResourceTransformer> transformers = handler.getResourceTransformers();
assertThat(transformers).hasSize(2);
assertThat(transformers).element(0).isInstanceOf(CachingResourceTransformer.class);
assertThat(transformers).element(1).isInstanceOf(CssLinkResourceTransformer.class);
assertThat(handler.getResourceResolvers()).satisfiesExactly(
zero -> assertThat(zero).isInstanceOf(CachingResourceResolver.class),
one -> assertThat(one).isSameAs(versionResolver),
two -> assertThat(two).isInstanceOf(WebJarsResourceResolver.class),
three -> assertThat(three).isInstanceOf(PathResourceResolver.class));
assertThat(handler.getResourceTransformers()).hasExactlyElementsOfTypes(
CachingResourceTransformer.class, CssLinkResourceTransformer.class);
}
@Test

View File

@@ -88,8 +88,7 @@ class ViewResolverRegistryTests {
View view = new HttpMessageWriterView(new Jackson2JsonEncoder());
this.registry.defaultViews(view);
assertThat(this.registry.getDefaultViews()).hasSize(1);
assertThat(this.registry.getDefaultViews()).element(0).isSameAs(view);
assertThat(this.registry.getDefaultViews()).containsExactly(view);
}
@Test // SPR-16431

View File

@@ -67,7 +67,6 @@ import org.springframework.web.reactive.result.method.annotation.RequestMappingH
import org.springframework.web.reactive.result.method.annotation.ResponseBodyResultHandler;
import org.springframework.web.reactive.result.method.annotation.ResponseEntityResultHandler;
import org.springframework.web.reactive.result.view.HttpMessageWriterView;
import org.springframework.web.reactive.result.view.View;
import org.springframework.web.reactive.result.view.ViewResolutionResultHandler;
import org.springframework.web.reactive.result.view.ViewResolver;
import org.springframework.web.reactive.result.view.freemarker.FreeMarkerConfigurer;
@@ -259,11 +258,9 @@ class WebFluxConfigurationSupportTests {
assertThat(resolvers).hasSize(1);
assertThat(resolvers.get(0).getClass()).isEqualTo(FreeMarkerViewResolver.class);
List<View> views = handler.getDefaultViews();
assertThat(views).hasSize(1);
MimeType type = MimeTypeUtils.parseMimeType("application/json");
assertThat(views.get(0).getSupportedMediaTypes()).element(0).isEqualTo(type);
assertThat(handler.getDefaultViews()).singleElement().satisfies(view ->
assertThat(view.getSupportedMediaTypes()).element(0).isEqualTo(type));
}
@Test

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2024 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.
@@ -255,29 +255,22 @@ class MultipartRouterFunctionIntegrationTests extends AbstractRouterFunctionInte
.collectList()
.flatMap((List<List<PartEvent>> data) -> {
assertThat(data).hasSize(2);
List<PartEvent> fileData = data.get(0);
assertThat(fileData).hasSize(2);
assertThat(fileData).element(0).isInstanceOf(FilePartEvent.class);
FilePartEvent filePartEvent = (FilePartEvent) fileData.get(0);
assertThat(filePartEvent.name()).isEqualTo("fooPart");
assertThat(filePartEvent.filename()).isEqualTo("foo.txt");
DataBufferUtils.release(filePartEvent.content());
assertThat(fileData).element(1).isInstanceOf(FilePartEvent.class);
filePartEvent = (FilePartEvent) fileData.get(1);
assertThat(filePartEvent.name()).isEqualTo("fooPart");
assertThat(filePartEvent.filename()).isEqualTo("foo.txt");
DataBufferUtils.release(filePartEvent.content());
List<PartEvent> fieldData = data.get(1);
assertThat(fieldData).hasSize(1);
assertThat(fieldData).element(0).isInstanceOf(FormPartEvent.class);
FormPartEvent formPartEvent = (FormPartEvent) fieldData.get(0);
assertThat(formPartEvent.name()).isEqualTo("barPart");
assertThat(formPartEvent.content().toString(StandardCharsets.UTF_8)).isEqualTo("bar");
DataBufferUtils.release(filePartEvent.content());
assertThat(data.get(0)).satisfiesExactly(
zero -> assertThat(zero).isInstanceOfSatisfying(FilePartEvent.class, filePartEvent -> {
assertThat(filePartEvent.name()).isEqualTo("fooPart");
assertThat(filePartEvent.filename()).isEqualTo("foo.txt");
DataBufferUtils.release(filePartEvent.content());
}),
one -> assertThat(one).isInstanceOfSatisfying(FilePartEvent.class, filePartEvent -> {
assertThat(filePartEvent.name()).isEqualTo("fooPart");
assertThat(filePartEvent.filename()).isEqualTo("foo.txt");
DataBufferUtils.release(filePartEvent.content());
}));
assertThat(data.get(1)).singleElement().isInstanceOfSatisfying(FormPartEvent.class, formPartEvent -> {
assertThat(formPartEvent.name()).isEqualTo("barPart");
assertThat(formPartEvent.content().toString(StandardCharsets.UTF_8)).isEqualTo("bar");
DataBufferUtils.release(formPartEvent.content());
});
return ServerResponse.ok().build();
});
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2024 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.
@@ -113,8 +113,8 @@ class ProtobufIntegrationTests extends AbstractRequestMappingIntegrationTests {
.uri("/message-stream")
.exchangeToFlux(response -> {
assertThat(response.headers().contentType().get().getParameters().get("delimited")).isEqualTo("true");
assertThat(response.headers().header("X-Protobuf-Schema")).element(0).isEqualTo("sample.proto");
assertThat(response.headers().header("X-Protobuf-Message")).element(0).isEqualTo("Msg");
assertThat(response.headers().header("X-Protobuf-Schema")).containsExactly("sample.proto");
assertThat(response.headers().header("X-Protobuf-Message")).containsExactly("Msg");
return response.bodyToFlux(Msg.class);
});