package com.tale;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.tale.application.tale.dto.SurveyDto;
import com.tale.core.domain.Survey;
import com.tale.infrastructure.config.JacksonConfiguration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class PrivacyEnumDeserializationTest {

    private final ObjectMapper mapper = new JacksonConfiguration().objectMapper();

    @Test
    void deserializesLowercasePublic() throws Exception {
        SurveyDto dto = mapper.readValue("{\"privacy\":\"public\"}", SurveyDto.class);
        Assertions.assertEquals(Survey.Privacy.Public, dto.getPrivacy());
    }

    @Test
    void deserializesUppercasePublic() throws Exception {
        SurveyDto dto = mapper.readValue("{\"privacy\":\"PUBLIC\"}", SurveyDto.class);
        Assertions.assertEquals(Survey.Privacy.Public, dto.getPrivacy());
    }

    @Test
    void deserializesExactPublic() throws Exception {
        SurveyDto dto = mapper.readValue("{\"privacy\":\"Public\"}", SurveyDto.class);
        Assertions.assertEquals(Survey.Privacy.Public, dto.getPrivacy());
    }
}
