EnumsToLCvsJsonProperty4788Test.java
package com.fasterxml.jackson.databind.ser.enums;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.EnumNamingStrategies;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.annotation.EnumNaming;
import com.fasterxml.jackson.databind.cfg.EnumFeature;
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;
import static org.junit.jupiter.api.Assertions.assertEquals;
// [databind#4788] 2.18
public class EnumsToLCvsJsonProperty4788Test
extends DatabindTestUtil
{
public enum SauceA {
@JsonProperty("Ketchup")
KETCHUP,
}
@EnumNaming(EnumNamingStrategies.LowerCamelCaseStrategy.class)
public enum SauceB {
@JsonProperty("PROPERTY_MAYO_NAIZZZZ")
MAYO_NAIZZZZ
}
public enum SauceC {
@JsonProperty("Is-A-Prop")
IS_MY_NAME
}
ObjectMapper objectMapper = jsonMapperBuilder()
.configure(EnumFeature.WRITE_ENUMS_TO_LOWERCASE, true)
.build();
@Test
void shouldUseJsonPropertySimple()
throws Exception
{
assertEquals(
"\"Ketchup\"",
objectMapper.writeValueAsString(SauceA.KETCHUP)
);
}
@Test
void shouldUseJsonPropertyOverEnumNaming()
throws Exception
{
assertEquals(
"\"PROPERTY_MAYO_NAIZZZZ\"",
objectMapper.writeValueAsString(SauceB.MAYO_NAIZZZZ)
);
}
@Test
void shouldUseJsonPropertyOverToString()
throws Exception
{
assertEquals(
"\"Is-A-Prop\"",
objectMapper.writer().with(SerializationFeature.WRITE_ENUMS_USING_TO_STRING)
.writeValueAsString(SauceC.IS_MY_NAME)
);
}
}