f816ef85f1ea07081bd3ae7a3de0ba13bb24518d
[snaps.git] / snaps / domain / test / stack_tests.py
1 # Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs")
2 #                    and others.  All rights reserved.
3 #
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:
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
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.
15
16 import unittest
17 from snaps.domain.stack import Stack, Resource, Output
18
19
20 class StackDomainObjectTests(unittest.TestCase):
21     """
22     Tests the construction of the snaps.domain.Stack class
23     """
24
25     def test_construction_positional(self):
26         stack = Stack('name', 'id')
27         self.assertEqual('name', stack.name)
28         self.assertEqual('id', stack.id)
29
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)
34
35
36 class ResourceDomainObjectTests(unittest.TestCase):
37     """
38     Tests the construction of the snaps.domain.Resource class
39     """
40
41     def test_construction_positional(self):
42         resource = Resource('foo', 'bar')
43         self.assertEqual('foo', resource.type)
44         self.assertEqual('bar', resource.id)
45
46     def test_construction_named(self):
47         resource = Resource(resource_id='bar', resource_type='foo')
48         self.assertEqual('foo', resource.type)
49         self.assertEqual('bar', resource.id)
50
51
52 class OutputDomainObjectTests(unittest.TestCase):
53     """
54     Tests the construction of the snaps.domain.Resource class
55     """
56
57     def test_construction_kwargs(self):
58         kwargs = {'description': 'foo', 'output_key': 'test_key',
59                   'output_value': 'bar'}
60         resource = Output(**kwargs)
61         self.assertEqual('foo', resource.description)
62         self.assertEqual('test_key', resource.key)
63         self.assertEqual('bar', resource.value)
64
65     def test_construction_named(self):
66         resource = Output(description='foo', output_key='test_key',
67                           output_value='bar')
68         self.assertEqual('foo', resource.description)
69         self.assertEqual('test_key', resource.key)
70         self.assertEqual('bar', resource.value)