package geniusweb.inform; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import org.junit.Before; import org.junit.Test; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import geniusweb.actions.PartyId; import geniusweb.issuevalue.Bid; import geniusweb.issuevalue.DiscreteValue; import geniusweb.issuevalue.Value; import tudelft.utilities.junit.GeneralTests; public class AgreementsTest extends GeneralTests { private final ObjectMapper jackson = new ObjectMapper(); private static final PartyId id = new PartyId("party1"); private static final PartyId id2 = new PartyId("party2"); private final static Value VALUE1 = new DiscreteValue("value1"); private static Bid bid = new Bid( Collections.singletonMap("issue1", VALUE1)); private static Bid bid2 = new Bid( Collections.singletonMap("issue2", VALUE1)); private final String finishedstring = "{\"party1\":{\"issuevalues\":{\"issue1\":\"value1\"}}}"; private final static Agreements agrees1 = new Agreements( Collections.singletonMap(id, bid)); private final static Agreements agrees1a = new Agreements( Collections.singletonMap(id, bid)); private final static Agreements agrees2 = new Agreements( Collections.singletonMap(id2, bid)); private final static Agreements agrees3 = new Agreements( Collections.singletonMap(id, bid2)); @Override public List> getGeneralTestData() { return Arrays.asList(Arrays.asList(agrees1, agrees1a), Arrays.asList(agrees2), Arrays.asList(agrees3)); } @Override public List getGeneralTestStrings() { return Arrays.asList("Agreements.*party1.*Bid.*issue1.*", "Agreements.*party2.*Bid.*issue1.*", "Agreements.*party1.*Bid.*issue2.*"); } @Before public void before() { } @Test public void serializeAcceptTest() throws JsonProcessingException { System.out.println(jackson.writeValueAsString(agrees1)); assertEquals(finishedstring, jackson.writeValueAsString(agrees1)); } @Test public void deserializeAcceptTest() throws IOException { Agreements act = jackson.readValue(finishedstring, Agreements.class); assertEquals(agrees1, act); } @SuppressWarnings("unused") @Test public void testNull() { new Agreements(); } @Test(expected = IllegalArgumentException.class) public void testWithAlreadyActed() { agrees1.with(agrees1); } @Test public void testWith() { Agreements agrees = agrees1.with(agrees2); assertEquals(bid, agrees.getMap().get(id)); assertEquals(bid, agrees.getMap().get(id2)); } @Test public void testBidConstructor() { Agreements agrees = new Agreements(bid, new HashSet(Arrays.asList(id, id2))); assertEquals(bid, agrees.getMap().get(id)); assertEquals(bid, agrees.getMap().get(id2)); } }