Skip to content
Merged
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 @@ -77,10 +77,10 @@ public Number serialize(Number element) {

@Override
public Number deserialize(Number element) {
if (Reflect.isIntegerType(element.getClass())) {
if (Reflect.isIntegerType(cls)) {
return deserializeFromIntegerType(element);
}
if (Reflect.isFloatingPointType(element.getClass())) {
if (Reflect.isFloatingPointType(cls)) {
return deserializeFromFloatingPointType(element);
}
String clsName = element.getClass().getSimpleName();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,6 @@ void numberSerializerRequiresValidNumberType() {
);
}

@Test
void numberSerializerDeserializeInvalidType() {
NumberSerializer serializer = new NumberSerializer(int.class);

assertThrowsConfigurationException(
() -> serializer.deserialize(BigInteger.ONE),
"Cannot deserialize element '1' of type BigInteger.\n" +
"This serializer only supports primitive number types and their wrapper types."
);
}

@ParameterizedTest
@ValueSource(classes = {
byte.class, Byte.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;

import static de.exlll.configlib.TestUtils.asList;
import static de.exlll.configlib.TestUtils.createPlatformSpecificFilePath;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;

class YamlConfigurationsTest {
private static final FieldFilter includeI = field -> field.getName().equals("i");
Expand Down Expand Up @@ -230,4 +233,79 @@ private void writeStringToStream(String string) {
private InputStream inputFromOutput() {
return new ByteArrayInputStream(outputStream.toByteArray());
}

@Configuration
private static final class DoublesConfig {
double d;
Double boxed;
List<Double> list;
}

@Test
void loadYamlConfigurationDoublesAllDecimal() {
writeStringToFile(
"""
d: 10.0
boxed: 20.0
list:
- 1.0
- 2.0
- 3.0
"""
);
DoublesConfig config = YamlConfigurations.load(yamlFile, DoublesConfig.class);
assertEquals(10.0, config.d);
assertEquals(20.0, config.boxed);
assertEquals(asList(1.0, 2.0, 3.0), config.list);
}

@Test
void loadYamlConfigurationDoublesUnboxed() {
writeStringToFile("d: 10");
DoublesConfig config = YamlConfigurations.load(yamlFile, DoublesConfig.class);
assertEquals(10.0, config.d);
}

@Test
void loadYamlConfigurationDoublesBoxed() {
writeStringToFile("boxed: 20");
DoublesConfig config = YamlConfigurations.load(yamlFile, DoublesConfig.class);
assertEquals(20.0, config.boxed);
}

@Test
void loadYamlConfigurationDoublesCollection() {
writeStringToFile(
"""
list:
- 1.0
- 2
- 3.0
"""
);
DoublesConfig config = YamlConfigurations.load(yamlFile, DoublesConfig.class);
assertEquals(asList(1.0, 2.0, 3.0), config.list);
}

@Test
void loadYamlConfigurationDoublesWithNulls() {
writeStringToFile(
"""
boxed: null
list:
- null
- null
- 1.0
- 2
"""
);
DoublesConfig config = YamlConfigurations.load(
yamlFile,
DoublesConfig.class,
builder -> builder.inputNulls(true)
);
assertEquals(0.0, config.d);
assertNull(config.boxed);
assertEquals(asList(null, null, 1.0, 2.0), config.list);
}
}