Passed
Push — master ( b50e97...feedcb )
by Humberto
01:28 queued 14s
created

TestGenericStruct.setUp()   A

Complexity

Conditions 1

Size

Total Lines 40
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 22
dl 0
loc 40
rs 9.352
c 0
b 0
f 0
cc 1
nop 1
1
"""Test Base module of python-openflow."""
2
import unittest
3
4
from pyof.foundation import base, basic_types
5
6
7
class TestGenericStruct(unittest.TestCase):
8
    """Testing GenericStruct class."""
9
10
    def setUp(self):
11
        """Basic Test Setup."""
12
        class AttributeA(base.GenericStruct):
13
            """Example class."""
14
15
            a1 = basic_types.UBInt8(1)
16
            a2 = basic_types.UBInt16(2)
17
18
        class AttributeC(base.GenericStruct):
19
            """Example class."""
20
21
            c1 = basic_types.UBInt32(3)
22
            c2 = basic_types.UBInt64(4)
23
24
        class AttributeB(base.GenericStruct):
25
            """Example class."""
26
27
            c = AttributeC()
28
29
        class Header(base.GenericStruct):
30
            """Mock Header class."""
31
32
            version = basic_types.UBInt8(1)
33
            message_type = basic_types.UBInt8(2)
34
            length = basic_types.UBInt8(8)
35
            xid = basic_types.UBInt8(4)
36
37
        class MyMessage(base.GenericMessage):
38
            """Example class."""
39
40
            header = Header()
41
            a = AttributeA()
42
            b = AttributeB()
43
            i = basic_types.UBInt32(5)
44
45
            def __init__(self):
46
                """Init method of example class."""
47
                super().__init__(None)
48
49
        self.MyMessage = MyMessage
50
51
    def test_basic_attributes(self):
52
        """[Foundation/Base/GenericStruct] - Attributes Creation."""
53
        message1 = self.MyMessage()
54
        message2 = self.MyMessage()
55
        self.assertIsNot(message1, message2)
56
        self.assertIsNot(message1.i, message2.i)
57
        self.assertIsNot(message1.a, message2.a)
58
        self.assertIsNot(message1.b, message2.b)
59
        self.assertIsNot(message1.a.a1, message2.a.a1)
60
        self.assertIsNot(message1.a.a2, message2.a.a2)
61
        self.assertIsNot(message1.b.c, message2.b.c)
62
        self.assertIsNot(message1.b.c.c1, message2.b.c.c1)
63
        self.assertIsNot(message1.b.c.c2, message2.b.c.c2)
64
65
66
class TestGenericType(unittest.TestCase):
67
    """Testing GenericType class."""
68
69
    def test_basic_operator(self):
70
        """[Foundation/Base/GenericType] - Basic Operators."""
71
        a = basic_types.UBInt32(1)
72
        b = basic_types.UBInt32(2)
73
74
        self.assertEqual(a + 1, 2)
75
        self.assertEqual(1 + a, 2)
76
        self.assertEqual(b + 1, 3)
77
        self.assertEqual(1 + b, 3)
78
79
        self.assertEqual(a - 1, 0)
80
        self.assertEqual(1 - a, 0)
81
        self.assertEqual(b - 1, 1)
82
        self.assertEqual(1 - b, 1)
83
84
        self.assertEqual(a & 1, 1)
85
        self.assertEqual(1 & a, 1)
86
        self.assertEqual(b & 1, 0)
87
        self.assertEqual(1 & b, 0)
88
89
        self.assertEqual(a | 1, 1)
90
        self.assertEqual(1 | a, 1)
91
        self.assertEqual(b | 1, 3)
92
        self.assertEqual(1 | b, 3)
93
94
        self.assertEqual(a ^ 1, 0)
95
        self.assertEqual(1 ^ a, 0)
96
        self.assertEqual(b ^ 1, 3)
97
        self.assertEqual(1 ^ b, 3)
98