summaryrefslogtreecommitdiff
path: root/generator/test/test_enums.py
diff options
context:
space:
mode:
Diffstat (limited to 'generator/test/test_enums.py')
-rw-r--r--generator/test/test_enums.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/generator/test/test_enums.py b/generator/test/test_enums.py
new file mode 100644
index 000000000..22650ce67
--- /dev/null
+++ b/generator/test/test_enums.py
@@ -0,0 +1,83 @@
+from collections import OrderedDict
+from unittest import TestCase
+
+try:
+ from generator import Generator
+except ImportError as error:
+ from generator.generator import Generator
+
+from model.enum import Enum
+from model.enum_element import EnumElement
+from transformers.enums_producer import EnumsProducer
+
+
+class TestEnumsProducer(TestCase):
+ """
+ The structures of tests in this class was prepared to cover all possible combinations of code branching in tested
+ class EnumsProducer.
+ All names of Enums and nested elements doesn't reflating with real Enums
+ and could be replaces with some meaningless names.
+
+ After performing Tests there are following initial test code coverage:
+ generator/transformers/common_producer.py 34%
+ generator/transformers/enums_producer.py 100%
+ """
+
+ def setUp(self):
+ self.maxDiff = None
+ key_words = Generator().get_key_words()
+
+ self.producer = EnumsProducer('SDLEnum', key_words)
+
+ def test_FunctionID(self):
+ """
+ generator/transformers/common_producer.py 34%
+ generator/transformers/enums_producer.py 80%
+ """
+ elements = OrderedDict()
+ elements['RESERVED'] = EnumElement(name='RESERVED', value=0)
+ elements['RegisterAppInterfaceID'] = EnumElement(name='RegisterAppInterfaceID', hex_value=1)
+ elements['PerformAudioPassThruID'] = EnumElement(name='PerformAudioPassThruID', hex_value=10)
+
+ item = Enum(name='FunctionID', elements=elements)
+ expected = OrderedDict()
+ expected['origin'] = 'FunctionID'
+ expected['name'] = 'SDLFunctionID'
+ expected['imports'] = {'.h': {'SDLEnum'}, '.m': {'SDLEnum'}}
+ expected['params'] = (
+ self.producer.param_named(description=[], name='Reserved', origin='RESERVED', since=None, deprecated=False),
+ self.producer.param_named(description=[], name='RegisterAppInterface', origin='RegisterAppInterfaceID',
+ since=None, deprecated=False),
+ self.producer.param_named(description=[], name='PerformAudioPassThru', origin='PerformAudioPassThruID',
+ since=None, deprecated=False),)
+
+ actual = self.producer.transform(item)
+ self.assertDictEqual(expected, actual)
+
+ def test_TextFieldName(self):
+ """
+ generator/transformers/common_producer.py 34%
+ generator/transformers/enums_producer.py 98%
+ """
+ elements = OrderedDict()
+ elements['SUCCESS'] = EnumElement(name='SUCCESS')
+ elements['mainField1'] = EnumElement(name='mainField1')
+ elements['H264'] = EnumElement(name='H264')
+ elements['UNSUPPORTED_REQUEST'] = EnumElement(name='UNSUPPORTED_REQUEST')
+ item = Enum(name='TextFieldName', elements=elements)
+
+ expected = OrderedDict()
+ expected['origin'] = 'TextFieldName'
+ expected['name'] = 'SDLTextFieldName'
+ expected['imports'] = {'.h': {'SDLEnum'}, '.m': {'SDLEnum'}}
+ expected['params'] = (
+ self.producer.param_named(description=[], name='Success', origin='SUCCESS', since=None,
+ deprecated=False),
+ self.producer.param_named(description=[], name='MainField1', origin='mainField1', since=None,
+ deprecated=False),
+ self.producer.param_named(description=[], name='H264', origin='H264', since=None, deprecated=False),
+ self.producer.param_named(description=[], name='UnsupportedRequest', origin='UNSUPPORTED_REQUEST',
+ since=None, deprecated=False))
+
+ actual = self.producer.transform(item)
+ self.assertDictEqual(expected, actual)