1 | from typing import List
|
---|
2 | import unittest
|
---|
3 | from unittest.mock import Mock
|
---|
4 |
|
---|
5 | from unitpy.GeneralTests import GeneralTests
|
---|
6 |
|
---|
7 | from geniusweb.actions.PartyId import PartyId
|
---|
8 | from geniusweb.protocol.partyconnection.ProtocolToPartyConn import ProtocolToPartyConn
|
---|
9 | from geniusweb.protocol.partyconnection.ProtocolToPartyConnections import ProtocolToPartyConnections
|
---|
10 |
|
---|
11 |
|
---|
12 | class ConnectionWithPartiesTest (unittest.TestCase, GeneralTests[ProtocolToPartyConnections]):
|
---|
13 | party1 = PartyId("party1")
|
---|
14 | party2 = PartyId("party2")
|
---|
15 | party3 = PartyId("party3")
|
---|
16 |
|
---|
17 | con1 = Mock(ProtocolToPartyConn)
|
---|
18 | con2 = Mock(ProtocolToPartyConn)
|
---|
19 | con3 = Mock(ProtocolToPartyConn)
|
---|
20 |
|
---|
21 | conns1 = ProtocolToPartyConnections([con1, con2])
|
---|
22 | conns1a = ProtocolToPartyConnections([con1, con2])
|
---|
23 | conns2 = ProtocolToPartyConnections([con1, con3])
|
---|
24 | conns3 = ProtocolToPartyConnections([con2, con1])
|
---|
25 | conns4 = ProtocolToPartyConnections([con2, con1, con3])
|
---|
26 | conns5 = ProtocolToPartyConnections([con2, con1, con3, con1])
|
---|
27 |
|
---|
28 | con1.__repr__=Mock(return_value="con1") #type:ignore
|
---|
29 | con2.__repr__=Mock(return_value="con2") #type:ignore
|
---|
30 | con3.__repr__=Mock(return_value="con3") #type:ignore
|
---|
31 |
|
---|
32 | con1.getParty=Mock(return_value=party1)
|
---|
33 | con2.getParty=Mock(return_value=party2)
|
---|
34 | con3.getParty=Mock(return_value=party3)
|
---|
35 |
|
---|
36 |
|
---|
37 | def getGeneralTestData(self)->List[List[ProtocolToPartyConnections]] :
|
---|
38 | return [[self.conns1, self.conns1a],[self.conns2], [self.conns3],
|
---|
39 | [self.conns4]]
|
---|
40 |
|
---|
41 | def getGeneralTestStrings(self) -> List[str] :
|
---|
42 | return ["ConnectionWithParties\\[con1, con2\\]",
|
---|
43 | "ConnectionWithParties\\[con1, con3\\]",
|
---|
44 | "ConnectionWithParties\\[con2, con1\\]",
|
---|
45 | "ConnectionWithParties\\[con2, con1, con3\\]"]
|
---|
46 |
|
---|
47 | def testGet(self):
|
---|
48 | self.assertEqual(self.con1, self.conns1.getConn(0))
|
---|
49 | self.assertEqual(self.con3, self.conns4.getConn(2))
|
---|
50 |
|
---|
51 | def testGetParty(self):
|
---|
52 | self.assertEquals(self.con1, self.conns1.get(self.party1))
|
---|
53 | self.assertEquals(self.con1, self.conns4.get(self.party1))
|
---|
54 | self.assertEquals(self.con2, self.conns1.get(self.party2))
|
---|
55 | self.assertEquals(self.con2, self.conns3.get(self.party2))
|
---|
56 | self.assertEquals(self.con2, self.conns4.get(self.party2))
|
---|
57 |
|
---|
58 | def testGetUnknownParty(self) :
|
---|
59 | self.assertEqual(None, self.conns2.get(self.party2))
|
---|
60 |
|
---|
61 | def testSize(self):
|
---|
62 | self.assertEqual(2, self.conns1.size())
|
---|
63 | self.assertEquals(2, self.conns2.size())
|
---|
64 | self.assertEquals(2, self.conns3.size())
|
---|
65 | self.assertEquals(3, self.conns4.size())
|
---|
66 |
|
---|
67 | def testWithParty(self) :
|
---|
68 | conns = self.conns3.With(self.con3)
|
---|
69 | self.assertEqual(2, self.conns3.size())
|
---|
70 | self.assertEqual(3, conns.size())
|
---|
71 | self.assertEqual(self.conns4, conns)
|
---|
72 |
|
---|
73 | def testWithExistingParty(self):
|
---|
74 | self.conns4.With(self.con1);
|
---|
75 | # no throw, default this is ok, it should be the protocol testing this.
|
---|
76 |
|
---|
77 | def testAllUnique(self):
|
---|
78 | self.assertTrue(self.conns4.allunique());
|
---|
79 | self.assertFalse(self.conns5.allunique());
|
---|
80 |
|
---|