EnumDefaultRead4403Test.java
package com.fasterxml.jackson.databind.deser.enums;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static com.fasterxml.jackson.databind.testutil.DatabindTestUtil.newJsonMapper;
import static com.fasterxml.jackson.databind.testutil.DatabindTestUtil.q;
public class EnumDefaultRead4403Test
{
// [databind#4403]
enum Brand4403 {
@JsonProperty("005")
SEAT,
@JsonProperty("006")
HYUNDAI,
@JsonEnumDefaultValue
OTHER
}
/*
/**********************************************************
/* Test methods
/**********************************************************
*/
private final ObjectMapper MAPPER = newJsonMapper();
// [databind#4403]
@Test
public void readFromDefault4403() throws Exception
{
ObjectReader r = MAPPER.readerFor(Brand4403.class)
.with(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE);
assertEquals(Brand4403.SEAT, r.readValue(q("005")));
assertEquals(Brand4403.HYUNDAI, r.readValue(q("006")));
assertEquals(Brand4403.OTHER, r.readValue(q("x")));
// Problem here: "001" taken as "Stringified" index 1
assertEquals(Brand4403.OTHER, r.readValue(q("001")));
}
}