Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,12 @@ public double getDouble(String key, double defaultValue) {
* <p>If the value is a {@link Boolean}, it is returned directly. Otherwise, the value's string
* representation is parsed via {@link Boolean#parseBoolean(String)}.
*
* <p>Note: values stored as {@link Number} (for example {@link Integer} values produced by a
* configuration parser) are not interpreted as numeric booleans. They are converted with {@link
* Object#toString()} first, so {@code 1} becomes the string {@code "1"}, which {@link
* Boolean#parseBoolean(String)} treats as {@code false} (only {@code "true"}, case-insensitive,
* is {@code true}).
*
* @param key the hashtable key.
* @param defaultValue a default value.
* @return the value in this property list with the specified key value as a boolean.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

import java.math.BigInteger;
import java.util.stream.Stream;

import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -78,20 +79,29 @@ private static Stream<Arguments> fromStringCases() {
Arguments.of("3.14", (TypedGetter) (c, k) -> c.getFloat(k, 0.0f), 3.14f),
Arguments.of(
"2.718281828", (TypedGetter) (c, k) -> c.getDouble(k, 0.0), 2.718281828),
Arguments.of("true", (TypedGetter) (c, k) -> c.getBoolean(k, false), true));
Arguments.of("true", (TypedGetter) (c, k) -> c.getBoolean(k, false), true),
Arguments.of("1", (TypedGetter) (c, k) -> c.getBoolean(k, false), false));
}

private static Stream<Arguments> nativeTypeCases() {
return Stream.of(
Arguments.of(42, (TypedGetter) (c, k) -> c.getInteger(k, 0), 42),
Arguments.of((short) 8, (TypedGetter) (c, k) -> c.getInteger(k, 0), 8),
Arguments.of((byte) 3, (TypedGetter) (c, k) -> c.getInteger(k, 0), 3),
Arguments.of(
123456789012345L,
(TypedGetter) (c, k) -> c.getLong(k, 0L),
123456789012345L),
Arguments.of(3.14f, (TypedGetter) (c, k) -> c.getFloat(k, 0.0f), 3.14f),
Arguments.of(2.718281828, (TypedGetter) (c, k) -> c.getDouble(k, 0.0), 2.718281828),
Arguments.of(true, (TypedGetter) (c, k) -> c.getBoolean(k, false), true),
Arguments.of(1, (TypedGetter) (c, k) -> c.getBoolean(k, false), false),
Arguments.of(0, (TypedGetter) (c, k) -> c.getBoolean(k, true), false),
Arguments.of(42, (TypedGetter) (c, k) -> c.getString(k, "default"), "42"),
Arguments.of(
new BigInteger("9223372036854775807"),
(TypedGetter) (c, k) -> c.getLong(k, 0L),
9223372036854775807L),
Arguments.of(
123456789012345L,
(TypedGetter) (c, k) -> c.getString(k, "default"),
Expand Down