Package com.fasterxml.jackson.module.afterburner.deser

Source Code of com.fasterxml.jackson.module.afterburner.deser.Item

package com.fasterxml.jackson.module.afterburner.deser;

import java.util.*;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
import com.fasterxml.jackson.module.afterburner.AfterburnerTestBase;

public class TestIssue14 extends AfterburnerTestBase
{
    public void testIssue() throws Exception
    {
        // create this ridiculously complicated object
        ItemData data = new ItemData();
        data.denomination = 100;
        Item item = new Item();
        item.data = data;
        item.productId = 123;
       
        List<Item> itemList = new ArrayList<Item>();
        itemList.add(item);
   
        PlaceOrderRequest order = new PlaceOrderRequest();
        order.orderId = 68723496;
        order.userId = "123489043";
        order.amount = 250;
        order.status = "placed";
        order.items = itemList;
       
        final Date now = new Date(999999L);
       
        order.createdAt = now;
        order.updatedAt = now;

        ObjectMapper vanillaMapper = new ObjectMapper();
        ObjectMapper abMapper = new ObjectMapper();
        abMapper.registerModule(new AfterburnerModule());

        // First: ensure that serialization produces identical output
       
        String origJson = vanillaMapper
                .writerWithDefaultPrettyPrinter()
                .writeValueAsString(order);

        String abJson = abMapper
                .writerWithDefaultPrettyPrinter()
                .writeValueAsString(order);

        assertEquals(origJson, abJson);
       
        // Then read the string and turn it back into an object
        // this will cause an exception unless the AfterburnerModule is commented out
        order = abMapper.readValue(abJson, PlaceOrderRequest.class);
        assertNotNull(order);
        assertEquals(250, order.amount);
    }
}

class PlaceOrderRequest {
     @JsonProperty("id") public long orderId;
     @JsonProperty("from") public String userId;
     public int amount;
     public String status;
     public List<Item> items;
     @JsonProperty("created_at") public Date createdAt;
     @JsonProperty("updated_at") public Date updatedAt;
}
    
class Item {
      @JsonProperty("product_id") public int productId;
      public int quantity;
      public ItemData data;
}

@JsonInclude(Include.NON_NULL)
class ItemData {
     public int denomination;
     public List<VLTBet> bets;
}

class VLTBet {
      public int index;
      public String selection;
      public int stake;
      public int won;
}
TOP

Related Classes of com.fasterxml.jackson.module.afterburner.deser.Item

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.