[81] | 1 | import unittest
|
---|
| 2 |
|
---|
| 3 | from pyson.ObjectMapper import ObjectMapper
|
---|
| 4 | from geniusweb.events.ActionEvent import ActionEvent
|
---|
| 5 | from unitpy.GeneralTests import GeneralTests
|
---|
| 6 | from geniusweb.actions.PartyId import PartyId
|
---|
| 7 | from geniusweb.actions.EndNegotiation import EndNegotiation
|
---|
| 8 | from typing import List
|
---|
| 9 | import json
|
---|
| 10 | from geniusweb.events.NegotiationEvent import NegotiationEvent
|
---|
| 11 | from unittest.mock import Mock
|
---|
| 12 |
|
---|
| 13 | class ActionEventTest(unittest.TestCase, GeneralTests[ActionEvent]):
|
---|
| 14 | NOW = 101
|
---|
| 15 | pyson = ObjectMapper()
|
---|
| 16 | string = "{\"ActionEvent\":{\"action\":{\"EndNegotiation\":{\"actor\":\"party1\"}},\"time\":101}}"
|
---|
| 17 | pid = PartyId("party1");
|
---|
| 18 | action = EndNegotiation(pid);
|
---|
| 19 | evt = ActionEvent(action, NOW);
|
---|
| 20 | evt1 = ActionEvent(action, NOW);
|
---|
| 21 | evtb = ActionEvent(action, NOW + 1);
|
---|
| 22 |
|
---|
| 23 | def getGeneralTestData(self) -> List[List[ActionEvent]]:
|
---|
| 24 | return [[self.evt, self.evt1], [self.evtb]]
|
---|
| 25 |
|
---|
| 26 | def getGeneralTestStrings(self):
|
---|
| 27 | return "ActionEvent\\[.*" + str(self.NOW) + ".*EndNegotiation.*\\]",\
|
---|
| 28 | "ActionEvent\\[.*" + str(self.NOW + 1) + ".*EndNegotiation.*\\]"
|
---|
| 29 |
|
---|
| 30 | def testSmoke(self):
|
---|
| 31 | action1 = Mock(EndNegotiation)
|
---|
| 32 | evt = ActionEvent(action1, 0)
|
---|
| 33 |
|
---|
| 34 | def testserialize(self):
|
---|
| 35 | json1 = self.pyson.toJson(self.evt)
|
---|
| 36 | print(json1)
|
---|
| 37 | self.assertEqual(json.loads(self.string), json1)
|
---|
| 38 |
|
---|
| 39 | def testdeserializeTestReadActionEvent(self):
|
---|
| 40 | evt1 = self.pyson.parse(json.loads(self.string), ActionEvent)
|
---|
| 41 | print(evt1)
|
---|
| 42 | # compare fields, as evt is a derived/new inner class
|
---|
| 43 | self.assertEqual(EndNegotiation, type(evt1.getAction()))
|
---|
| 44 | self.assertEqual(101, evt1.getTime())
|
---|
| 45 |
|
---|
| 46 | def testdeserializeTestReadEvent(self):
|
---|
| 47 | self.assertEqual(self.evt1, self.pyson.parse(json.loads(self.string), ActionEvent))
|
---|
| 48 | evt1 = self.pyson.parse(json.loads(self.string), NegotiationEvent)
|
---|
| 49 | self.assertEqual(ActionEvent, type(evt1))
|
---|
| 50 | ev1 = evt1
|
---|
| 51 | self.assertEqual(EndNegotiation, type(ev1.getAction()))
|
---|
| 52 | self.assertEqual(101, ev1.getTime())
|
---|