|
|
|
@ -24,6 +24,7 @@ import java.util.LinkedHashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Properties;
|
|
|
|
|
import java.util.SortedMap;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
@ -244,7 +245,7 @@ class MapBinderTests {
|
|
|
|
|
existing.put("baz", 1001);
|
|
|
|
|
Bindable<Map<String, Integer>> target = STRING_INTEGER_MAP.withExistingValue(existing);
|
|
|
|
|
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).containsEntry("bar", 1);
|
|
|
|
|
assertThat(result).containsEntry("baz", 1001);
|
|
|
|
@ -253,10 +254,10 @@ class MapBinderTests {
|
|
|
|
|
@Test
|
|
|
|
|
void bindToMapShouldRespectMapType() {
|
|
|
|
|
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 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
|
|
|
|
|