package openfoodfacts.github.scrachx.openfood.models; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test; import static org.junit.Assert.assertEquals; /** * @author herau */ public class NutrientLevelsTest { @Test public void jsonSerialization_ok() throws Exception { NutrientLevels nutrientLevels = new NutrientLevels(); nutrientLevels.setFat(NutrimentLevel.LOW); nutrientLevels.setSalt(NutrimentLevel.MODERATE); nutrientLevels.setSaturatedFat(NutrimentLevel.HIGH); nutrientLevels.setSugars(NutrimentLevel.MODERATE); JsonNode jsonNode = new ObjectMapper().valueToTree(nutrientLevels); assertEquals(jsonNode.get("fat").asText(), NutrimentLevel.LOW.toString()); assertEquals(jsonNode.get("salt").asText(), NutrimentLevel.MODERATE.toString()); assertEquals(jsonNode.get("saturated-fat").asText(), NutrimentLevel.HIGH.toString()); assertEquals(jsonNode.get("sugars").asText(), NutrimentLevel.MODERATE.toString()); } @Test public void jsonDeserialization_ok() throws Exception { NutrientLevels nutrientLevels = new NutrientLevels(); nutrientLevels.setFat(NutrimentLevel.LOW); nutrientLevels.setSalt(NutrimentLevel.MODERATE); nutrientLevels.setSaturatedFat(NutrimentLevel.HIGH); nutrientLevels.setSugars(NutrimentLevel.MODERATE); ObjectMapper objectMapper = new ObjectMapper(); NutrientLevels nutrientLevelsResult = objectMapper.treeToValue( objectMapper.createObjectNode() .put("fat", "low") .put("salt", "moderate") .put("saturated-fat", "high") .put("sugars", "moderate"), NutrientLevels.class); assertEquals(nutrientLevels.getFat(), nutrientLevelsResult.getFat()); assertEquals(nutrientLevels.getSugars(), nutrientLevelsResult.getSugars()); assertEquals(nutrientLevels.getSaturatedFat(), nutrientLevelsResult.getSaturatedFat()); assertEquals(nutrientLevels.getSalt(), nutrientLevelsResult.getSalt()); } }