|
32 | 32 | import org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration;
|
33 | 33 | import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
34 | 34 | import org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration;
|
| 35 | +import org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener; |
35 | 36 | import org.springframework.boot.autoconfigure.web.ServerProperties;
|
| 37 | +import org.springframework.boot.logging.LogLevel; |
36 | 38 | import org.springframework.boot.test.context.FilteredClassLoader;
|
37 | 39 | import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
|
38 | 40 | import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
@@ -130,12 +132,41 @@ void gsonCustomConverter() {
|
130 | 132 |
|
131 | 133 | @Test
|
132 | 134 | void gsonCanBePreferred() {
|
133 |
| - allOptionsRunner().withPropertyValues("spring.mvc.converters.preferred-json-mapper:gson").run((context) -> { |
134 |
| - assertConverterBeanExists(context, GsonHttpMessageConverter.class, "gsonHttpMessageConverter"); |
135 |
| - assertConverterBeanRegisteredWithHttpMessageConverters(context, GsonHttpMessageConverter.class); |
136 |
| - assertThat(context).doesNotHaveBean(JsonbHttpMessageConverter.class); |
137 |
| - assertThat(context).doesNotHaveBean(MappingJackson2HttpMessageConverter.class); |
138 |
| - }); |
| 135 | + allOptionsRunner().withInitializer(ConditionEvaluationReportLoggingListener.forLogLevel(LogLevel.INFO)) |
| 136 | + .withPropertyValues("spring.http.converters.preferred-json-mapper:gson") |
| 137 | + .run((context) -> { |
| 138 | + assertConverterBeanExists(context, GsonHttpMessageConverter.class, "gsonHttpMessageConverter"); |
| 139 | + assertConverterBeanRegisteredWithHttpMessageConverters(context, GsonHttpMessageConverter.class); |
| 140 | + assertThat(context).doesNotHaveBean(JsonbHttpMessageConverter.class); |
| 141 | + assertThat(context).doesNotHaveBean(MappingJackson2HttpMessageConverter.class); |
| 142 | + }); |
| 143 | + } |
| 144 | + |
| 145 | + @Test |
| 146 | + @Deprecated(since = "3.5.0", forRemoval = true) |
| 147 | + void gsonCanBePreferredWithDeprecatedProperty() { |
| 148 | + allOptionsRunner().withInitializer(ConditionEvaluationReportLoggingListener.forLogLevel(LogLevel.INFO)) |
| 149 | + .withPropertyValues("spring.mvc.converters.preferred-json-mapper:gson") |
| 150 | + .run((context) -> { |
| 151 | + assertConverterBeanExists(context, GsonHttpMessageConverter.class, "gsonHttpMessageConverter"); |
| 152 | + assertConverterBeanRegisteredWithHttpMessageConverters(context, GsonHttpMessageConverter.class); |
| 153 | + assertThat(context).doesNotHaveBean(JsonbHttpMessageConverter.class); |
| 154 | + assertThat(context).doesNotHaveBean(MappingJackson2HttpMessageConverter.class); |
| 155 | + }); |
| 156 | + } |
| 157 | + |
| 158 | + @Test |
| 159 | + @Deprecated(since = "3.5.0", forRemoval = true) |
| 160 | + void gsonCanBePreferredWithNonDeprecatedPropertyTakingPrecedence() { |
| 161 | + allOptionsRunner().withInitializer(ConditionEvaluationReportLoggingListener.forLogLevel(LogLevel.INFO)) |
| 162 | + .withPropertyValues("spring.http.converters.preferred-json-mapper:gson", |
| 163 | + "spring.mvc.converters.preferred-json-mapper:jackson") |
| 164 | + .run((context) -> { |
| 165 | + assertConverterBeanExists(context, GsonHttpMessageConverter.class, "gsonHttpMessageConverter"); |
| 166 | + assertConverterBeanRegisteredWithHttpMessageConverters(context, GsonHttpMessageConverter.class); |
| 167 | + assertThat(context).doesNotHaveBean(JsonbHttpMessageConverter.class); |
| 168 | + assertThat(context).doesNotHaveBean(MappingJackson2HttpMessageConverter.class); |
| 169 | + }); |
139 | 170 | }
|
140 | 171 |
|
141 | 172 | @Test
|
@@ -169,6 +200,31 @@ void jsonbCanBePreferred() {
|
169 | 200 | });
|
170 | 201 | }
|
171 | 202 |
|
| 203 | + @Test |
| 204 | + @Deprecated(since = "3.5.0", forRemoval = true) |
| 205 | + void jsonbCanBePreferredWithDeprecatedProperty() { |
| 206 | + allOptionsRunner().withPropertyValues("spring.http.converters.preferred-json-mapper:jsonb").run((context) -> { |
| 207 | + assertConverterBeanExists(context, JsonbHttpMessageConverter.class, "jsonbHttpMessageConverter"); |
| 208 | + assertConverterBeanRegisteredWithHttpMessageConverters(context, JsonbHttpMessageConverter.class); |
| 209 | + assertThat(context).doesNotHaveBean(GsonHttpMessageConverter.class); |
| 210 | + assertThat(context).doesNotHaveBean(MappingJackson2HttpMessageConverter.class); |
| 211 | + }); |
| 212 | + } |
| 213 | + |
| 214 | + @Test |
| 215 | + @Deprecated(since = "3.5.0", forRemoval = true) |
| 216 | + void jsonbCanBePreferredWithNonDeprecatedPropertyTakingPrecedence() { |
| 217 | + allOptionsRunner() |
| 218 | + .withPropertyValues("spring.http.converters.preferred-json-mapper:jsonb", |
| 219 | + "spring.mvc.converters.preferred-json-mapper:gson") |
| 220 | + .run((context) -> { |
| 221 | + assertConverterBeanExists(context, JsonbHttpMessageConverter.class, "jsonbHttpMessageConverter"); |
| 222 | + assertConverterBeanRegisteredWithHttpMessageConverters(context, JsonbHttpMessageConverter.class); |
| 223 | + assertThat(context).doesNotHaveBean(GsonHttpMessageConverter.class); |
| 224 | + assertThat(context).doesNotHaveBean(MappingJackson2HttpMessageConverter.class); |
| 225 | + }); |
| 226 | + } |
| 227 | + |
172 | 228 | @Test
|
173 | 229 | void stringDefaultConverter() {
|
174 | 230 | this.contextRunner.run(assertConverter(StringHttpMessageConverter.class, "stringHttpMessageConverter"));
|
|
0 commit comments