1 # Copyright (c) 2015 Intel Research and Development Ireland Ltd.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 __author__ = 'gpetralx'
19 import experimental_framework.heat_template_generation as heat_gen
22 class TestTreeNode(unittest.TestCase):
24 self.tree = heat_gen.TreeNode()
29 def test_add_child_for_success(self):
30 child = heat_gen.TreeNode()
31 self.tree.add_child(child)
32 self.assertIn(child, self.tree.down)
34 def test_get_parent_for_success(self):
35 self.assertIsNone(self.tree.get_parent())
36 child = heat_gen.TreeNode()
37 self.tree.add_child(child)
38 self.assertEqual(self.tree, child.get_parent())
40 def test_get_children_for_success(self):
41 self.assertListEqual(list(), self.tree.get_children())
42 child = heat_gen.TreeNode()
43 self.tree.add_child(child)
45 self.assertListEqual(children, self.tree.get_children())
47 def test_variable_name_for_success(self):
48 self.assertEqual('', self.tree.get_variable_name())
49 variable_name = 'test'
50 self.tree.set_variable_name(variable_name)
51 self.assertEqual(variable_name, self.tree.get_variable_name())
53 def test_variable_value_for_success(self):
54 self.assertEqual(0, self.tree.get_variable_value())
56 self.tree.set_variable_value(variable_value)
57 self.assertEqual(variable_value, self.tree.get_variable_value())
59 def test_get_path_for_success(self):
60 child_1 = heat_gen.TreeNode()
61 self.tree.add_child(child_1)
62 child_2 = heat_gen.TreeNode()
63 child_1.add_child(child_2)
64 child_3 = heat_gen.TreeNode()
65 child_2.add_child(child_3)
67 path = [self.tree, child_1, child_2, child_3]
69 self.assertListEqual(path, child_3.get_path())
71 def test_str_for_success(self):
74 self.tree.set_variable_name(name)
75 self.tree.set_variable_value(value)
76 self.assertEqual(name + " --> " + str(value), str(self.tree))
78 def test_repr_for_success(self):
81 self.tree.set_variable_name(name)
82 self.tree.set_variable_value(value)
83 self.assertEqual(name + " = " + str(value), repr(self.tree))
85 def test_get_leaves_for_success(self):
86 child_1 = heat_gen.TreeNode()
87 self.tree.add_child(child_1)
88 child_2 = heat_gen.TreeNode()
89 child_1.add_child(child_2)
90 child_3 = heat_gen.TreeNode()
91 child_2.add_child(child_3)
92 child_4 = heat_gen.TreeNode()
93 child_2.add_child(child_4)
94 child_5 = heat_gen.TreeNode()
95 child_2.add_child(child_5)
96 leaves = [child_3, child_4, child_5]
97 self.assertListEqual(leaves, heat_gen.TreeNode.get_leaves(self.tree))