Browse Source

Merge pull request #44747 from quaff

* pr/44747:
  Udate copyright year of changed file
  Remove workaround for Java Records in tests

Closes gh-44747
pull/44767/head
Stéphane Nicoll 9 months ago
parent
commit
86d08fb76f
  1. 33
      spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/bind/ValueObjectBinderTests.java

33
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/bind/ValueObjectBinderTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2024 the original author or authors.
* Copyright 2012-2025 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.
@ -36,14 +36,11 @@ import org.springframework.boot.context.properties.source.MockConfigurationPrope @@ -36,14 +36,11 @@ import org.springframework.boot.context.properties.source.MockConfigurationPrope
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.ResolvableType;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.test.tools.SourceFile;
import org.springframework.core.test.tools.TestCompiler;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.Assert;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.fail;
/**
* Tests for {@link ValueObjectBinder}.
@ -51,6 +48,7 @@ import static org.assertj.core.api.Assertions.fail; @@ -51,6 +48,7 @@ import static org.assertj.core.api.Assertions.fail;
* @author Madhura Bhave
* @author Phillip Webb
* @author Pavel Anisimov
* @author Yanming Zhou
*/
class ValueObjectBinderTests {
@ -390,25 +388,12 @@ class ValueObjectBinderTests { @@ -390,25 +388,12 @@ class ValueObjectBinderTests {
@Test
void bindToRecordWithDefaultValue() {
MockConfigurationPropertySource source = new MockConfigurationPropertySource();
source.put("test.record.property1", "value-from-config-1");
source.put("test.property1", "value-from-config-1");
this.sources.add(source);
String recordProperties = """
public record RecordProperties(
@org.springframework.boot.context.properties.bind.DefaultValue("default-value-1") String property1,
@org.springframework.boot.context.properties.bind.DefaultValue("default-value-2") String property2) {
}
""";
TestCompiler.forSystem().withSources(SourceFile.of(recordProperties)).compile((compiled) -> {
try {
ClassLoader cl = compiled.getClassLoader();
Object bean = this.binder.bind("test.record", Class.forName("RecordProperties", true, cl)).get();
assertThat(bean).hasFieldOrPropertyWithValue("property1", "value-from-config-1")
.hasFieldOrPropertyWithValue("property2", "default-value-2");
}
catch (ClassNotFoundException ex) {
fail("Expected generated class 'RecordProperties' not found", ex);
}
});
Bindable<RecordProperties> target = Bindable.of(RecordProperties.class);
RecordProperties bound = this.binder.bindOrCreate("test", target);
assertThat(bound.property1()).isEqualTo("value-from-config-1");
assertThat(bound.property2()).isEqualTo("default-value-2");
}
@Test // gh-38201
@ -912,6 +897,10 @@ class ValueObjectBinderTests { @@ -912,6 +897,10 @@ class ValueObjectBinderTests {
record NamedRecordComponent(@Name("import") String importName) {
}
record RecordProperties(@DefaultValue("default-value-1") String property1,
@DefaultValue("default-value-2") String property2) {
}
static class NonExtractableParameterName {
private String value;

Loading…
Cancel
Save