package com.twilio.converter; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.junit.Assert; import org.junit.Test; import java.io.IOException; import java.util.Currency; /** * Test class for {@link CurrencyDeserializer}. */ public class CurrencyDeserializerTest { @Test public void testDeserialize() throws IOException { String json = "{ \"currency\": \"usd\" }"; ObjectMapper mapper = new ObjectMapper(); Container c = Container.fromJson(json, mapper); Assert.assertEquals("USD", c.currency.getCurrencyCode()); } @Test(expected = JsonMappingException.class) public void testInvalidCurrency() throws IOException { String json = "{ \"currency\": \"poo\" }"; ObjectMapper mapper = new ObjectMapper(); Container.fromJson(json, mapper); } private static class Container { private final Currency currency; public Container( @JsonProperty("currency") @JsonDeserialize(using = CurrencyDeserializer.class) Currency currency ) { this.currency = currency; } public static Container fromJson(String json, ObjectMapper mapper) throws IOException { return mapper.readValue(json, Container.class); } } }