source: protocol/src/test/java/geniusweb/protocol/session/mopac2/PartyStatesTest.java@ 52

Last change on this file since 52 was 52, checked in by ruud, 14 months ago

Fixed small issues in domaineditor.

File size: 3.6 KB
Line 
1package geniusweb.protocol.session.mopac2;
2
3import static org.junit.Assert.assertEquals;
4
5import java.io.IOException;
6import java.net.URISyntaxException;
7import java.util.Arrays;
8import java.util.Collections;
9import java.util.HashMap;
10import java.util.HashSet;
11import java.util.List;
12import java.util.Map;
13
14import org.junit.Test;
15
16import com.fasterxml.jackson.core.JsonProcessingException;
17import com.fasterxml.jackson.databind.ObjectMapper;
18
19import geniusweb.actions.PartyId;
20import geniusweb.inform.Agreements;
21import geniusweb.protocol.ProtocolException;
22import tudelft.utilities.junit.GeneralTests;
23
24public class PartyStatesTest extends GeneralTests<PartyStates> {
25 private final ObjectMapper jackson = new ObjectMapper();
26
27 private final PartyId party1 = new PartyId("party1");
28 private final PartyId party2 = new PartyId("party2");
29 private final PartyId party3 = new PartyId("party3");
30
31 private final Map<PartyId, Integer> powers = new HashMap<>();
32 private final PartyStates states1, states1a, states2;
33 private final String serialized = "{\"notYetActed\":[\"party2\",\"party1\",\"party3\"],\"actions\":[],\"agreements\":{},\"walkedAway\":[],\"exceptions\":{},\"powers\":{\"party2\":3,\"party1\":2,\"party3\":3}}";
34
35 public PartyStatesTest() {
36
37 // FIXME use the other constructor to really test this.
38// PartyStates(Set<PartyId> notYetActed, List<Action> actions,
39// Agreements agreements, List<PartyId> walkedAway,
40// Map<PartyId, ProtocolException> exceptions,
41// Map<PartyId, Integer> powers)
42//
43 powers.put(party1, 2);
44 powers.put(party2, 3);
45 states2 = new PartyStates(powers);
46 powers.put(party3, 3);
47 states1 = new PartyStates(powers);
48 states1a = new PartyStates(powers);
49 }
50
51 @Override
52 public List<List<PartyStates>> getGeneralTestData() {
53 return Arrays.asList(Arrays.asList(states1, states1a),
54 Arrays.asList(states2));
55 }
56
57 @Override
58 public List<String> getGeneralTestStrings() {
59 return Arrays.asList(
60 "PartyStates.*\\[party2, party1, party3\\],\\[\\],Agreements\\{\\},\\[\\],\\{\\}.*",
61 "PartyStates.*\\[party2, party1\\],\\[\\],Agreements\\{\\},\\[\\],\\{\\}.*");
62 }
63
64 @Test
65 public void testBasics() {
66 assertEquals(powers.keySet(), states1.getNegotiatingParties());
67 assertEquals(powers.keySet(), states1.getNotYetActed());
68 assertEquals(0, states1.getExceptions().size());
69 }
70
71 @Test
72 public void testException() {
73 PartyStates newstates = states1
74 .with(new ProtocolException("bla", party1));
75 assertEquals(new Agreements(), newstates.getAgreements());
76 assertEquals(powers.keySet(), states1.getNegotiatingParties());
77 assertEquals(new HashSet<>(Arrays.asList(party2, party3)),
78 newstates.getNotYetActed());
79 }
80
81 @Test
82 public void testFinish() {
83 PartyStates newstates = states1.finish();
84 assertEquals(new Agreements(), newstates.getAgreements());
85 assertEquals(powers.keySet(), states1.getNegotiatingParties());
86 assertEquals(Collections.emptySet(), newstates.getNotYetActed());
87 }
88
89 @Test
90 public void testDeserialize() throws IOException {
91 PartyStates obj = jackson.readValue(serialized, PartyStates.class);
92 System.out.println(obj);
93 assertEquals(states1, obj);
94 }
95
96 @Test
97 public void testSerialize()
98 throws JsonProcessingException, URISyntaxException {
99
100 String string = jackson.writeValueAsString(states1);
101 System.out.println(string);
102 assertEquals(serialized, string);
103 }
104
105 @Test
106 public void testWalkAway() {
107 PartyStates walkawaystate = states1.withWalkAway(party2);
108 assertEquals(new HashSet<>(Arrays.asList(party1, party3)),
109 walkawaystate.getNotYetActed());
110 assertEquals(Arrays.asList(party2), walkawaystate.getWalkedAway());
111 }
112}
Note: See TracBrowser for help on using the repository browser.