source: bidspace/src/test/java/geniusweb/bidspace/AllPartialBidsListTest.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.bidspace;
2
3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertFalse;
5import static org.junit.Assert.assertTrue;
6
7import java.math.BigDecimal;
8import java.math.BigInteger;
9import java.util.Collection;
10import java.util.HashMap;
11import java.util.Iterator;
12import java.util.LinkedList;
13import java.util.Map;
14
15import org.junit.Test;
16
17import geniusweb.bidspace.AllPartialBidsList;
18import geniusweb.issuevalue.Bid;
19import geniusweb.issuevalue.DiscreteValue;
20import geniusweb.issuevalue.DiscreteValueSet;
21import geniusweb.issuevalue.Domain;
22import geniusweb.issuevalue.NumberValue;
23import geniusweb.issuevalue.NumberValueSet;
24import geniusweb.issuevalue.ValueSet;
25
26public class AllPartialBidsListTest {
27 private static final DiscreteValue I1V2 = new DiscreteValue("i1v2");
28 private static final DiscreteValue I1V1 = new DiscreteValue("i1v1");
29 private static final NumberValue I2V1 = new NumberValue("2.00");
30 private static final NumberValue I2V2 = new NumberValue("2.45");
31 private static final NumberValue I2V3 = new NumberValue("2.90");
32 private static final String DOMAINNAME = "testdomain";
33 private static final String ISSUE1 = "issue1";
34 private static final String ISSUE2 = "issue2";
35 private static final Map<String, ValueSet> issues = new HashMap<>();
36
37 private static final ValueSet values1;
38 private static final ValueSet values2;
39 private static final BigDecimal TWO = new BigDecimal("2");
40 private static final BigDecimal THREE = new BigDecimal("3");
41
42 private static final Domain domain;
43
44 private static final AllPartialBidsList allPartialBidsList;
45
46 static {
47 Collection<DiscreteValue> discretevalues1 = new LinkedList<>();
48 discretevalues1.add(I1V1);
49 discretevalues1.add(I1V2);
50 values1 = new DiscreteValueSet(discretevalues1);
51 issues.put(ISSUE1, values1);
52
53 values2 = new NumberValueSet(TWO, THREE, new BigDecimal("0.45"));
54 issues.put(ISSUE2, values2);
55
56 domain = new Domain(DOMAINNAME, issues);
57 allPartialBidsList = new AllPartialBidsList(domain);
58
59 }
60
61 @Test
62 public void testListElements() {
63 assertEquals(new BigInteger("12"), allPartialBidsList.size());
64 checkBid(allPartialBidsList.get(0), null, null);
65 checkBid(allPartialBidsList.get(1), null, I2V1);
66 checkBid(allPartialBidsList.get(2), null, I2V2);
67 checkBid(allPartialBidsList.get(3), null, I2V3);
68
69 checkBid(allPartialBidsList.get(4), I1V1, null);
70 checkBid(allPartialBidsList.get(5), I1V1, I2V1);
71 checkBid(allPartialBidsList.get(6), I1V1, I2V2);
72 checkBid(allPartialBidsList.get(7), I1V1, I2V3);
73
74 checkBid(allPartialBidsList.get(8), I1V2, null);
75 checkBid(allPartialBidsList.get(9), I1V2, I2V1);
76 checkBid(allPartialBidsList.get(10), I1V2, I2V2);
77 checkBid(allPartialBidsList.get(11), I1V2, I2V3);
78
79 }
80
81 @Test
82 public void testiterator() {
83 Iterator<Bid> iterator = allPartialBidsList.iterator();
84 checkNext(iterator, null, null);
85 checkNext(iterator, null, I2V1);
86 checkNext(iterator, null, I2V2);
87 checkNext(iterator, null, I2V3);
88
89 checkNext(iterator, I1V1, null);
90 checkNext(iterator, I1V1, I2V1);
91 checkNext(iterator, I1V1, I2V2);
92 checkNext(iterator, I1V1, I2V3);
93
94 checkNext(iterator, I1V2, null);
95 checkNext(iterator, I1V2, I2V1);
96 checkNext(iterator, I1V2, I2V2);
97 checkNext(iterator, I1V2, I2V3);
98 assertFalse(iterator.hasNext());
99 }
100
101 private void checkNext(Iterator<Bid> iterator, DiscreteValue value1,
102 NumberValue value2) {
103 assertTrue(iterator.hasNext());
104 checkBid(iterator.next(), value1, value2);
105 }
106
107 private void checkBid(Bid bid, DiscreteValue value1, NumberValue value2) {
108 assertEquals(value1, bid.getValue(ISSUE1));
109 assertEquals(value2, bid.getValue(ISSUE2));
110 }
111}
Note: See TracBrowser for help on using the repository browser.