Advertisement
Guest User

Jackson Plain Test

a guest
Jun 4th, 2020
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.21 KB | None | 0 0
  1. import static org.assertj.core.api.Assertions.assertThat;
  2.  
  3. import lombok.Data;
  4.  
  5. import java.util.List;
  6.  
  7. import org.junit.jupiter.api.Test;
  8.  
  9. import com.fasterxml.jackson.annotation.JsonTypeInfo;
  10. import com.fasterxml.jackson.core.JsonProcessingException;
  11. import com.fasterxml.jackson.databind.ObjectMapper;
  12.  
  13. public class JacksonPlainTest {
  14.  
  15.     @Test
  16.     void testPlain() throws JsonProcessingException {
  17.         ObjectMapper m = new ObjectMapper();
  18.         m.findAndRegisterModules();
  19.  
  20.         Dog dog = new Dog();
  21.         dog.setName("dog");
  22.  
  23.         Cat cat = new Cat();
  24.         cat.setName("cat");
  25.  
  26.         List<Animal> animals = List.of(dog, cat);
  27.         Zoo z = new Zoo();
  28.         z.setAnimals(animals);
  29.  
  30.         String json = m.writeValueAsString(z);
  31.         Zoo deser = m.readValue(json, Zoo.class);
  32.         assertThat(z).isEqualTo(deser);
  33.     }
  34.  
  35.     @Data
  36.     static class Zoo {
  37.         @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
  38.         List<Animal> animals;
  39.     }
  40.  
  41.     interface Animal {
  42.         String getName();
  43.     }
  44.  
  45.     @Data
  46.     static class Dog implements Animal {
  47.         String name;
  48.     }
  49.  
  50.     @Data
  51.     static class Cat implements Animal {
  52.         String name;
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement