1 # Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs")
2 # and others. All rights reserved.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 from snaps.domain.stack import Stack, Resource, Output
20 class StackDomainObjectTests(unittest.TestCase):
22 Tests the construction of the snaps.domain.Stack class
25 def test_construction_positional(self):
26 stack = Stack('name', 'id')
27 self.assertEqual('name', stack.name)
28 self.assertEqual('id', stack.id)
30 def test_construction_named(self):
31 stack = Stack(stack_id='id', name='name')
32 self.assertEqual('name', stack.name)
33 self.assertEqual('id', stack.id)
36 class ResourceDomainObjectTests(unittest.TestCase):
38 Tests the construction of the snaps.domain.Resource class
41 def test_construction_positional(self):
42 resource = Resource('res_name', 'foo', 'bar', 'status', 'reason')
43 self.assertEqual('res_name', resource.name)
44 self.assertEqual('foo', resource.type)
45 self.assertEqual('bar', resource.id)
46 self.assertEqual('status', resource.status)
47 self.assertEqual('reason', resource.status_reason)
49 def test_construction_named(self):
51 status_reason=None, status=None, resource_id='bar',
52 resource_type='foo', name='res_name')
53 self.assertEqual('res_name', resource.name)
54 self.assertEqual('foo', resource.type)
55 self.assertEqual('bar', resource.id)
56 self.assertIsNone(resource.status)
57 self.assertIsNone(resource.status_reason)
60 class OutputDomainObjectTests(unittest.TestCase):
62 Tests the construction of the snaps.domain.Resource class
65 def test_construction_kwargs(self):
66 kwargs = {'description': 'foo', 'output_key': 'test_key',
67 'output_value': 'bar'}
68 resource = Output(**kwargs)
69 self.assertEqual('foo', resource.description)
70 self.assertEqual('test_key', resource.key)
71 self.assertEqual('bar', resource.value)
73 def test_construction_named(self):
74 resource = Output(description='foo', output_key='test_key',
76 self.assertEqual('foo', resource.description)
77 self.assertEqual('test_key', resource.key)
78 self.assertEqual('bar', resource.value)