|
|
|
@ -24,6 +24,7 @@ import java.util.LinkedHashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Properties; |
|
|
|
import java.util.Properties; |
|
|
|
|
|
|
|
import java.util.SortedMap; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
@ -244,7 +245,7 @@ class MapBinderTests { |
|
|
|
existing.put("baz", 1001); |
|
|
|
existing.put("baz", 1001); |
|
|
|
Bindable<Map<String, Integer>> target = STRING_INTEGER_MAP.withExistingValue(existing); |
|
|
|
Bindable<Map<String, Integer>> target = STRING_INTEGER_MAP.withExistingValue(existing); |
|
|
|
Map<String, Integer> result = this.binder.bind("foo", target).get(); |
|
|
|
Map<String, Integer> result = this.binder.bind("foo", target).get(); |
|
|
|
assertThat(result).isExactlyInstanceOf(HashMap.class); |
|
|
|
assertThat(result).isInstanceOf(HashMap.class); |
|
|
|
assertThat(result).hasSize(2); |
|
|
|
assertThat(result).hasSize(2); |
|
|
|
assertThat(result).containsEntry("bar", 1); |
|
|
|
assertThat(result).containsEntry("bar", 1); |
|
|
|
assertThat(result).containsEntry("baz", 1001); |
|
|
|
assertThat(result).containsEntry("baz", 1001); |
|
|
|
@ -253,10 +254,10 @@ class MapBinderTests { |
|
|
|
@Test |
|
|
|
@Test |
|
|
|
void bindToMapShouldRespectMapType() { |
|
|
|
void bindToMapShouldRespectMapType() { |
|
|
|
this.sources.add(new MockConfigurationPropertySource("foo.bar", "1")); |
|
|
|
this.sources.add(new MockConfigurationPropertySource("foo.bar", "1")); |
|
|
|
ResolvableType type = ResolvableType.forClassWithGenerics(HashMap.class, String.class, Integer.class); |
|
|
|
ResolvableType type = ResolvableType.forClassWithGenerics(SortedMap.class, String.class, Integer.class); |
|
|
|
Object defaultMap = this.binder.bind("foo", STRING_INTEGER_MAP).get(); |
|
|
|
Object defaultMap = this.binder.bind("foo", STRING_INTEGER_MAP).get(); |
|
|
|
Object customMap = this.binder.bind("foo", Bindable.of(type)).get(); |
|
|
|
Object customMap = this.binder.bind("foo", Bindable.of(type)).get(); |
|
|
|
assertThat(customMap).isExactlyInstanceOf(HashMap.class).isNotInstanceOf(defaultMap.getClass()); |
|
|
|
assertThat(customMap).isInstanceOf(SortedMap.class).isNotInstanceOf(defaultMap.getClass()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
|