aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_validation.py
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2016-09-11 09:36:30 +0200
committerJuergen Ryannel <juergen.bocklage-ryannel@pelagicore.com>2016-11-30 10:01:20 +0100
commit8516188ae0f9f14935d3595b8e803dc6324dff32 (patch)
treef4cea4ee12936354fe4763f2f3f296b04ec767c7 /tests/test_validation.py
parent37fe686d82bfcdfa9fcc8bb1383cf243eeb68a7e (diff)
Added a 2nd pass resolving listener, which resolves the referenced complex types as symbol object (see domain.TypeSymbol.reference).
It does not honor yet module imports.
Diffstat (limited to 'tests/test_validation.py')
-rw-r--r--tests/test_validation.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/test_validation.py b/tests/test_validation.py
new file mode 100644
index 0000000..ca2abc2
--- /dev/null
+++ b/tests/test_validation.py
@@ -0,0 +1,64 @@
+from qface.idl.domain import System
+from qface.generator import FileSystem
+import logging
+import logging.config
+from pathlib import Path
+
+# logging.config.fileConfig('logging.ini')
+logging.basicConfig()
+
+log = logging.getLogger(__name__)
+
+inputPath = Path('tests/in')
+log.debug('input path folder: {0}'.format(inputPath.absolute()))
+
+
+def loadOne():
+ path = inputPath / 'one.qdl'
+ return FileSystem.parse_document(path)
+
+
+def test_resolve():
+ system = loadOne()
+ module = system.lookup_module('one')
+ assert module
+ service = module.lookup_definition('OneService')
+ assert service
+ operation = service.operationMap['echo']
+ assert operation
+ struct = module.lookup_definition('StringStruct')
+ assert struct
+ assert operation.type.reference is struct
+
+ parameter = operation.parameterMap['message']
+ assert parameter
+ assert parameter.type.reference is struct
+
+ property = service.propertyMap['message']
+ assert property
+
+ assert property.type.reference is struct
+
+
+def test_resolve_nested():
+ system = loadOne()
+ module = system.lookup_module('one')
+ assert module
+ struct = module.lookup_definition('one.StringStruct')
+ nested = module.lookup_definition('one.NestedStruct')
+ assert struct and nested
+ member = struct.memberMap['nested']
+ assert member
+ assert member.type.reference is nested
+
+ service = module.lookup_definition('one.OneService')
+ assert service
+ listProperty = service.propertyMap['messageList']
+ assert listProperty
+ assert listProperty.type.nested.reference is struct
+
+ modelProperty = service.propertyMap['messageModel']
+ assert modelProperty
+ assert modelProperty.type.nested.reference is struct
+
+