murano/murano/tests/unit/dsl/meta/ContractExamples.yaml

289 lines
5.4 KiB
YAML

Name: ContractExamples
Extends: CommonParent
Properties:
sampleClass:
Contract: $.class(SampleClass1)
ordinaryProperty:
Contract: $.string()
templateProperty:
Contract: $.template(TemplateTestChild, excludeProperties => [bar])
Methods:
testStringContract:
Arguments:
arg:
Contract: $.string()
Body:
Return: $arg
testIntContract:
Arguments:
arg:
Contract: $.int()
Body:
Return: $arg
testBoolContract:
Arguments:
arg:
Contract: $.bool()
Body:
Return: $arg
testClassContract:
Arguments:
arg:
Contract: $.class(SampleClass2)
Body:
Return: $arg
testTemplateContract:
Arguments:
arg:
Contract: $.template(CreatedClass2)
Body:
Return: $arg
testTemplateContractExcludePropertyFromMpl:
Body:
- $model:
:CreatedClass2:
property1: qwerty
property2: 'not integer'
- Return: $.testTemplateContractExcludeProperty($model)
testTemplateContractExcludeProperty:
Arguments:
arg:
Contract: $.template(CreatedClass2, excludeProperties => [property2])
Body:
Return: $arg
testClassFromIdContract:
Arguments:
arg:
Contract: $.class(SampleClass1)
Body:
Return: $arg
testCheckContract:
Arguments:
- arg1:
Contract: $.class(SampleClass2).check($.class2Property = qwerty)
- arg2:
Contract: $.int().check($ > 10)
testOwnedContract:
Arguments:
- arg1:
Contract: $.class(SampleClass1).owned()
- arg2:
Contract: $.class(SampleClass2).owned()
testNotOwnedContract:
Arguments:
- arg1:
Contract: $.class(SampleClass1).notOwned()
- arg2:
Contract: $.class(SampleClass2).notOwned()
testScalarContract:
Arguments:
- arg1:
Contract: 'fixed'
- arg2:
Contract: 456
- arg3:
Contract: true
Body:
Return: $arg1
testListContract:
Arguments:
- arg:
Contract: [$.int()]
Body:
Return: $arg
testListWithMinLengthContract:
Arguments:
- arg:
Contract: [$.int(), 3]
Body:
Return: $arg
testListWithMinMaxLengthContract:
Arguments:
- arg:
Contract: [$.int(), 2, 4]
Body:
Return: $arg
testDictContract:
Arguments:
- arg:
Contract:
A: $.string()
B: $.int()
Body:
Return: $arg
testDictExprContract:
Arguments:
- arg:
Contract:
$.int(): $.string()
B: $.int()
Body:
Return: $arg
testDictMultiExprContract:
Arguments:
- arg:
Contract:
$.int(): $.string()
$.string(): $.int()
Body:
Return: $arg
testNotNullContract:
Arguments:
- arg:
Contract: $.notNull()
Body:
Return: $arg
testDefault:
Arguments:
- arg:
Contract: $.string()
Default: DEFAULT
Body:
Return: $arg
testDefaultExpression:
Arguments:
- arg:
Contract: $.string()
Default: $.ordinaryProperty
Body:
Return: $arg
testActionMeta:
Scope: Public
Meta:
- io.murano.metadata.Title:
text: "Title of the method"
- io.murano.metadata.Description:
text: "Description of the method"
- io.murano.metadata.HelpText:
text: "HelpText of the method"
notAction:
Scope: Session
testAction:
Scope: Public
---
Name: TestedTarget
Properties:
prop:
Contract:
- $.string()
Methods:
foo:
Arguments:
- contracted:
Contract:
- $.string()
Body:
- Return: $contracted[2]
wildList:
Arguments:
- contracted:
Contract:
- $
Body:
- Return: $contracted[1][2]
wildContract:
Arguments:
- untyped:
Contract: $
Body:
- Return: $untyped[1]
typedList:
Arguments:
- contracted:
Contract:
- [$.string()]
Body:
- Return: $contracted[1][2]
dictArgs:
Arguments:
- arg:
Contract: {$.string(): [$.int()]}
Body:
- Return: $arg.get('a')[1]
---
Name: TestIteratorsTransform
Methods:
testProperties:
Body:
- $.target: new(TestedTarget, $this, prop => ['1', '2', '3'].where($))
- Return: $.target.prop[2]
testArgs:
Body:
- $.target: new(TestedTarget, $this)
- Return: $.target.foo(['1', '2', '3'].where($))
testUntypedArgs:
Body:
- $.target: new(TestedTarget, $this)
- Return: $.target.wildContract(['1', '2', '3'].where($))
testNotTypedListArgs:
Body:
- $.target: new(TestedTarget, $this)
- Return: $.target.wildList([['1', '2', '3'].where($), ['4', '5', '6'].where($)].where($))
testTypedList:
Body:
- $.target: new(TestedTarget, $this)
- Return: $.target.typedList([['1', '2', '3'].where($), ['4', '5', '6'].where($)].where($))
testListDict:
Body:
- $.target: new(TestedTarget, $this)
- Return: $.target.dictArgs({'a' => [1, 2, 4].where($)})
---
Name: TemplateTestChild
Properties:
bar:
Contract: $.int().notNull()
---
Name: TemplatePropertyClass
Properties:
owned:
Contract: $.class(Node)
template:
Contract: $.template(Node)
Methods:
testTemplateWithExternallyOwnedObject:
Body:
- Return: new($.template).nodes.select(id($))