package geniusweb.inform; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; import org.junit.Test; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import geniusweb.actions.Offer; import geniusweb.actions.PartyId; import geniusweb.issuevalue.Bid; import geniusweb.issuevalue.DiscreteValue; import tudelft.utilities.junit.GeneralTests; public class VotingTest extends GeneralTests { private PartyId party1 = new PartyId("party1"); private Bid bid1 = new Bid("iss", new DiscreteValue("val1")); private Bid bid2 = new Bid("iss", new DiscreteValue("val2")); private Map powers1 = Collections.singletonMap(party1, 2); private Map powers2 = Collections.singletonMap(party1, 3); private final Voting voting1 = new Voting( Arrays.asList(new Offer(party1, bid1)), powers1); private final Voting voting1a = new Voting( Arrays.asList(new Offer(party1, bid1)), powers1); private final Voting voting2 = new Voting( Arrays.asList(new Offer(party1, bid2)), powers1); private final Voting voting3 = new Voting( Arrays.asList(new Offer(party1, bid1)), powers2); private String asJson = "{\"Voting\":{\"offers\":[{\"Offer\":{\"actor\":\"party1\",\"bid\":{\"issuevalues\":{\"iss\":\"val1\"}}}}],\"powers\":{\"party1\":2}}}"; @Override public List> getGeneralTestData() { return Arrays.asList(Arrays.asList(voting1, voting1a), Arrays.asList(voting2), Arrays.asList(voting3)); } @Override public List getGeneralTestStrings() { return Arrays.asList("Voting.*Bid.*iss.*val1.*party1.*2.*", "Voting.*Bid.*iss.*val2.*party1.*2.*", "Voting.*Bid.*iss.*val1.*party1.*3.*"); } @Test public void testSerialize() throws JsonProcessingException { ObjectMapper jackson = new ObjectMapper(); String json = jackson.writeValueAsString(voting1); System.out.println(json); assertEquals(asJson, json); } @Test public void testDeserialize() throws JsonParseException, JsonMappingException, IOException { ObjectMapper jackson = new ObjectMapper(); Inform p = jackson.readValue(asJson, Inform.class); System.out.println(p); assertEquals(voting1, p); } }