Auto-generated patch by python-black
[integration/test.git] / csit / libraries / IoTDM / client_libs / testing / test_onem2m_json_primitive.py
1 #
2 # Copyright (c) 2017 Cisco Systems, Inc. and others.  All rights reserved.
3 #
4 # This program and the accompanying materials are made available under the
5 # terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 # and is available at http://www.eclipse.org/legal/epl-v10.html
7 #
8
9 import unittest
10 import json
11
12 from onem2m_json_primitive import OneM2MJsonPrimitiveBuilder
13 from onem2m_primitive import OneM2M
14
15
16 class TestOneM2MJsonPrimitive(unittest.TestCase):
17     """Class of unittests testing OneM2MJsonPrimitive objects"""
18
19     params = """{"test": {"value": 1} }"""
20     content = """{"content": 123, "content2": {"content_element": "ce1"}}"""
21     proto_params = """{"proto_param1": 1, "proto_param2": 2, "proto_param3" : {"element1": "e1"}}"""
22
23     def test_primitive_build_no_content(self):
24         builder = OneM2MJsonPrimitiveBuilder()
25         builder.set_parameters(self.params)
26         primitive = builder.build()
27         self.assertIsNotNone(primitive)
28         self.assertIsNotNone(primitive.get_parameters_str())
29         self.assertIsNotNone(primitive.get_primitive_str())
30         json_primitive = json.loads(primitive.get_primitive_str())
31         self.assertNotIn(OneM2M.short_primitive_content, json_primitive)
32
33         self.assertEqual(json.dumps(json_primitive), primitive.get_parameters_str())
34
35     def _create_primitive(self):
36         builder = (
37             OneM2MJsonPrimitiveBuilder()
38             .set_parameters(self.params)
39             .set_content(self.content)
40             .set_protocol_specific_parameters(self.proto_params)
41         )
42         return builder.build()
43
44     def test_primitive_build_with_content(self):
45         primitive = self._create_primitive()
46         self.assertIsNotNone(primitive)
47         self.assertIsNotNone(primitive.get_parameters_str())
48         self.assertIsNotNone(primitive.get_primitive_str())
49
50         json_primitive = json.loads(primitive.get_primitive_str())
51         self.assertIn(OneM2M.short_primitive_content, json_primitive)
52
53         self.assertEqual(
54             json.dumps(json_primitive[OneM2M.short_primitive_content]),
55             primitive.get_content_str(),
56         )
57
58     def test_primitive_items_access(self):
59         primitive = self._create_primitive()
60         test_param = primitive.get_param("/test")
61         self.assertIsNotNone(test_param)
62         self.assertTrue(isinstance(test_param, dict))
63
64         item_val = primitive.get_param("/test/value")
65         self.assertEqual(item_val, 1)
66
67         content2_attr = primitive.get_attr("/content2")
68         self.assertIsNotNone(content2_attr)
69         self.assertTrue(isinstance(content2_attr, dict))
70
71         item_val = primitive.get_attr("/content/")
72         self.assertEqual(item_val, 123)
73         item_val = primitive.get_attr("/content")
74         self.assertEqual(item_val, 123)
75         item_val = primitive.get_attr("/content2/content_element")
76         self.assertEqual(item_val, "ce1")
77
78         proto_param3 = primitive.get_proto_param("/proto_param3")
79         self.assertIsNotNone(proto_param3)
80         self.assertTrue(isinstance(proto_param3, dict))
81
82         item_val = primitive.get_proto_param("/proto_param2")
83         self.assertEqual(item_val, 2)
84         item_val = primitive.get_proto_param("/proto_param3/element1/")
85         self.assertEqual(item_val, "e1")