]> git.evergreen-ils.org Git - OpenSRF.git/blob - src/python/tests/net_obj_test.py
Inline TestObject for net_obj_test.py as well
[OpenSRF.git] / src / python / tests / net_obj_test.py
1 """
2 Unit tests for the osrf.net_obj module
3 """
4
5 import sys, os
6 sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
7
8 import osrf.json, osrf.net_obj, unittest
9
10 class TestObject(object):
11     """Test object with basic JSON structures"""
12     def __init__(self):
13         self.int = 1
14         self.string = "two"
15         self.array = [1,2,3,4]
16         self.dict = {'foo': 'bar', 'key': 'value'}
17         self.true = True
18         self.false = False
19         self.null = None
20
21 class CheckNetworkEncoder(unittest.TestCase):
22     """Tests the NetworkEncoder JSON encoding extension"""
23
24     def setUp(self):
25         osrf.net_obj.register_hint('osrfMessage', ['threadTrace', 'locale', 'type', 'payload'], 'hash')
26         self.testo = TestObject()
27         self.ne = osrf.json.NetworkEncoder()
28
29     def test_connect(self):
30         test_json = self.ne.default(
31             osrf.net_obj.NetworkObject.osrfMessage({
32                     'threadTrace' : 0,
33                     'type' : "CONNECT"
34                 } 
35             )
36         )
37         self.assertEqual(test_json, {'__p': 
38             {'threadTrace': 0, 'type': 'CONNECT'},
39             '__c': 'osrfMessage'}
40         )
41
42     def test_connect_array(self):
43         test_json = self.ne.default(
44             osrf.net_obj.NetworkObject.osrfMessage({
45                     'threadTrace' : 0,
46                     'type' : "CONNECT",
47                     'protocol' : "array"
48                 } 
49             )
50         )
51         self.assertEqual(test_json, {'__p':
52             {'threadTrace': 0, 'protocol': 'array', 'type': 'CONNECT'},
53             '__c': 'osrfMessage'}
54         )
55
56     def test_connect_to_xml(self):
57         test_json = self.ne.default(
58             osrf.net_obj.NetworkObject.osrfMessage({
59                     'threadTrace' : 0,
60                     'type' : "CONNECT"
61                 } 
62             )
63         )
64         self.assertEqual(
65             osrf.net_obj.to_xml(test_json), 
66             "<object><element key='__p'><object><element key='threadTrace'>"
67             "<number>0</number></element><element key='type'>"
68             "<string>CONNECT</string></element></object></element>"
69             "<element key='__c'><string>osrfMessage</string></element></object>"
70         )
71
72
73 if __name__ == '__main__':
74     unittest.main()
75