Update template.

This commit is contained in:
Tadeas Kriz 2017-04-27 16:26:52 +02:00
parent cfe0b0189d
commit d9b2614d2b
2 changed files with 11 additions and 3 deletions

View File

@ -5,7 +5,7 @@
func loadTemplates() -> [String:String] {
var templates : [String:String] = [:]
templates["Mock.swift.stencil"] = "eyUgZm9yIGNvbnRhaW5lciBpbiBjb250YWluZXJzICV9CmNsYXNzIE1vY2t7eyBjb250YWluZXIubmFtZSB9fToge3sgY29udGFpbmVyLm5hbWUgfX0sIEN1Y2tvby5Nb2NrIHsKICAgIHR5cGVhbGlhcyBNb2Nrc1R5cGUgPSB7eyBjb250YWluZXIubmFtZSB9fQogICAgdHlwZWFsaWFzIFN0dWJiaW5nID0gX19TdHViYmluZ1Byb3h5X3t7IGNvbnRhaW5lci5uYW1lIH19CiAgICB0eXBlYWxpYXMgVmVyaWZpY2F0aW9uID0gX19WZXJpZmljYXRpb25Qcm94eV97eyBjb250YWluZXIubmFtZSB9fQogICAgbGV0IGN1Y2tvb19tYW5hZ2VyID0gQ3Vja29vLk1vY2tNYW5hZ2VyKCkKCiAgICBwcml2YXRlIHZhciBvYnNlcnZlZDoge3sgY29udGFpbmVyLm5hbWUgfX0/CgogICAgZnVuYyBzcHkob24gdmljdGltOiB7eyBjb250YWluZXIubmFtZSB9fSkgLT4gU2VsZiB7CiAgICAgICAgb2JzZXJ2ZWQgPSB2aWN0aW0KICAgICAgICByZXR1cm4gc2VsZgogICAgfQoKICAgIHslIGZvciBwcm9wZXJ0eSBpbiBjb250YWluZXIucHJvcGVydGllcyAlfQogICAgLy8ge3twcm9wZXJ0eX19CiAgICB7eyBwcm9wZXJ0eS5hY2Nlc3NpYmlsaXR5IH19eyUgaWYgY29udGFpbmVyLkB0eXBlID09ICJDbGFzc0RlY2xhcmF0aW9uIiAlfSBvdmVycmlkZXslIGVuZGlmICV9IHZhciB7eyBwcm9wZXJ0eS5uYW1lIH19OiB7eyBwcm9wZXJ0eS50eXBlIH19IHsKICAgICAgICBnZXQgewogICAgICAgICAgICByZXR1cm4gY3Vja29vX21hbmFnZXIuZ2V0dGVyKCJ7eyBwcm9wZXJ0eS5uYW1lIH19Iiwgb3JpZ2luYWw6IG9ic2VydmVkLm1hcCB7IG8gaW4gcmV0dXJuIHsgKCkgLT4ge3sgcHJvcGVydHkudHlwZSB9fSBpbiBvLnt7IHByb3BlcnR5Lm5hbWUgfX0gfX0pCiAgICAgICAgfQogICAgICAgIHslIGlmbm90IHByb3BlcnR5LmlzUmVhZE9ubHkgJX0KICAgICAgICBzZXQgewogICAgICAgICAgICBjdWNrb29fbWFuYWdlci5zZXR0ZXIoInt7IHByb3BlcnR5Lm5hbWUgfX0iLCB2YWx1ZTogbmV3VmFsdWUsIG9yaWdpbmFsOiBvYnNlcnZlZCAhPSBuaWwgPyB7IHNlbGYub2JzZXJ2ZWQ/Lnt7IHByb3BlcnR5Lm5hbWUgfX0gPSAkMCB9IDogbmlsKQogICAgICAgIH0KICAgICAgICB7JSBlbmRpZiAlfQogICAgfQogICAgeyUgZW5kZm9yICV9CgogICAgeyUgZm9yIGluaXRpYWxpemVyIGluIGNvbnRhaW5lci5pbml0aWFsaXplcnMgJX0KICAgIHt7IGluaXRpYWxpemVyLmFjY2Vzc2liaWxpdHkgfX17JSBpZiBjb250YWluZXIuQHR5cGUgPT0gIkNsYXNzRGVjbGFyYXRpb24iICV9IG92ZXJyaWRleyUgZW5kaWYgJX17JSBpZiBpbml0aWFsaXplci5AdHlwZSA9PSAiUHJvdG9jb2xNZXRob2QiICV9IHJlcXVpcmVkeyVlbmRpZiV9IGluaXQoe3tpbml0aWFsaXplci5wYXJhbWV0ZXJTaWduYXR1cmV9fSkgewogICAgICAgIHslIGlmIGNvbnRhaW5lci5AdHlwZSA9PSAiQ2xhc3NEZWNsYXJhdGlvbiIgJX0KICAgICAgICBzdXBlci5pbml0KHt7aW5pdGlhbGl6ZXIuY2FsbH19KQogICAgICAgIHslIGVuZGlmICV9CiAgICB9CiAgICB7JSBlbmRmb3IgJX0KCiAgICB7JSBmb3IgbWV0aG9kIGluIGNvbnRhaW5lci5tZXRob2RzICV9CiAgICB7eyBtZXRob2QuYWNjZXNzaWJpbGl0eSB9fXslIGlmIGNvbnRhaW5lci5AdHlwZSA9PSAiQ2xhc3NEZWNsYXJhdGlvbiIgJX0gb3ZlcnJpZGV7JSBlbmRpZiAlfSBmdW5jIHt7IG1ldGhvZC5uYW1lIH19KHt7IG1ldGhvZC5wYXJhbWV0ZXJTaWduYXR1cmUgfX0pIHt7IG1ldGhvZC5yZXR1cm5TaWduYXR1cmUgfX0gewogICAgICAgIHslIGlmIG1ldGhvZC5pc1Rocm93aW5nICV9CiAgICAgICAgcmV0dXJuIHRyeSBjdWNrb29fbWFuYWdlci5jYWxsVGhyb3dzKCJ7e21ldGhvZC5mdWxseVF1YWxpZmllZE5hbWV9fSIsCiAgICAgICAgICAgIHBhcmFtZXRlcnM6ICh7e21ldGhvZC5wYXJhbWV0ZXJOYW1lc319KSwKICAgICAgICAgICAgb3JpZ2luYWw6IG9ic2VydmVkLm1hcCB7IG8gaW4gcmV0dXJuIHsgKHt7IG1ldGhvZC5wYXJhbWV0ZXJTaWduYXR1cmVXaXRob3V0TmFtZXMgfX0pe3ttZXRob2QucmV0dXJuU2lnbmF0dXJlfX0gaW4gdHJ5IG8ue3ttZXRob2QubmFtZX19eyVpZiBtZXRob2QuaXNPcHRpb25hbCAlfT97JWVuZGlmJX0oe3ttZXRob2QuY2FsbH19KSB9IH0pCiAgICAgICAgeyUgZWxzZSAlfQogICAgICAgIHJldHVybiBjdWNrb29fbWFuYWdlci5jYWxsKCJ7e21ldGhvZC5mdWxseVF1YWxpZmllZE5hbWV9fSIsCiAgICAgICAgICAgIHBhcmFtZXRlcnM6ICh7e21ldGhvZC5wYXJhbWV0ZXJOYW1lc319KSwKICAgICAgICAgICAgb3JpZ2luYWw6IG9ic2VydmVkLm1hcCB7IG8gaW4gcmV0dXJuIHsgKHt7IG1ldGhvZC5wYXJhbWV0ZXJTaWduYXR1cmVXaXRob3V0TmFtZXMgfX0pe3ttZXRob2QucmV0dXJuU2lnbmF0dXJlfX0gaW4gby57e21ldGhvZC5uYW1lfX17JWlmIG1ldGhvZC5pc09wdGlvbmFsICV9P3slZW5kaWYlfSh7e21ldGhvZC5jYWxsfX0pIH0gfSkKICAgICAgICB7JSBlbmRpZiAlfQogICAgfQogICAgeyUgZW5kZm9yICV9Cgp7JSBpbmNsdWRlICJTdHViYmluZ1Byb3h5LnN3aWZ0LnN0ZW5jaWwiICV9Cgp7JSBpbmNsdWRlICJWZXJpZmljYXRpb25Qcm94eS5zd2lmdC5zdGVuY2lsIiAlfQoKfQoKeyUgaW5jbHVkZSAiTm9wSW1wbFN0dWIuc3dpZnQuc3RlbmNpbCIgJX0KCnslIGVuZGZvciAlfQo="
templates["Mock.swift.stencil"] = "eyUgZm9yIGNvbnRhaW5lciBpbiBjb250YWluZXJzICV9CmNsYXNzIE1vY2t7eyBjb250YWluZXIubmFtZSB9fToge3sgY29udGFpbmVyLm5hbWUgfX0sIEN1Y2tvby5Nb2NrIHsKICAgIHR5cGVhbGlhcyBNb2Nrc1R5cGUgPSB7eyBjb250YWluZXIubmFtZSB9fQogICAgdHlwZWFsaWFzIFN0dWJiaW5nID0gX19TdHViYmluZ1Byb3h5X3t7IGNvbnRhaW5lci5uYW1lIH19CiAgICB0eXBlYWxpYXMgVmVyaWZpY2F0aW9uID0gX19WZXJpZmljYXRpb25Qcm94eV97eyBjb250YWluZXIubmFtZSB9fQogICAgbGV0IGN1Y2tvb19tYW5hZ2VyID0gQ3Vja29vLk1vY2tNYW5hZ2VyKCkKCiAgICBwcml2YXRlIHZhciBvYnNlcnZlZDoge3sgY29udGFpbmVyLm5hbWUgfX0/CgogICAgZnVuYyBzcHkob24gdmljdGltOiB7eyBjb250YWluZXIubmFtZSB9fSkgLT4gU2VsZiB7CiAgICAgICAgb2JzZXJ2ZWQgPSB2aWN0aW0KICAgICAgICByZXR1cm4gc2VsZgogICAgfQoKICAgIHslIGZvciBwcm9wZXJ0eSBpbiBjb250YWluZXIucHJvcGVydGllcyAlfQogICAgLy8ge3twcm9wZXJ0eX19CiAgICB7eyBwcm9wZXJ0eS5hY2Nlc3NpYmlsaXR5IH19eyUgaWYgY29udGFpbmVyLkB0eXBlID09ICJDbGFzc0RlY2xhcmF0aW9uIiAlfSBvdmVycmlkZXslIGVuZGlmICV9IHZhciB7eyBwcm9wZXJ0eS5uYW1lIH19OiB7eyBwcm9wZXJ0eS50eXBlIH19IHsKICAgICAgICBnZXQgewogICAgICAgICAgICByZXR1cm4gY3Vja29vX21hbmFnZXIuZ2V0dGVyKCJ7eyBwcm9wZXJ0eS5uYW1lIH19Iiwgb3JpZ2luYWw6IG9ic2VydmVkLm1hcCB7IG8gaW4gcmV0dXJuIHsgKCkgLT4ge3sgcHJvcGVydHkudHlwZSB9fSBpbiBvLnt7IHByb3BlcnR5Lm5hbWUgfX0gfX0pCiAgICAgICAgfQogICAgICAgIHslIGlmbm90IHByb3BlcnR5LmlzUmVhZE9ubHkgJX0KICAgICAgICBzZXQgewogICAgICAgICAgICBjdWNrb29fbWFuYWdlci5zZXR0ZXIoInt7IHByb3BlcnR5Lm5hbWUgfX0iLCB2YWx1ZTogbmV3VmFsdWUsIG9yaWdpbmFsOiBvYnNlcnZlZCAhPSBuaWwgPyB7IHNlbGYub2JzZXJ2ZWQ/Lnt7IHByb3BlcnR5Lm5hbWUgfX0gPSAkMCB9IDogbmlsKQogICAgICAgIH0KICAgICAgICB7JSBlbmRpZiAlfQogICAgfQogICAgeyUgZW5kZm9yICV9CgogICAgeyUgZm9yIGluaXRpYWxpemVyIGluIGNvbnRhaW5lci5pbml0aWFsaXplcnMgJX0KICAgIHt7IGluaXRpYWxpemVyLmFjY2Vzc2liaWxpdHkgfX17JSBpZiBjb250YWluZXIuQHR5cGUgPT0gIkNsYXNzRGVjbGFyYXRpb24iICV9IG92ZXJyaWRleyUgZW5kaWYgJX17JSBpZiBpbml0aWFsaXplci5AdHlwZSA9PSAiUHJvdG9jb2xNZXRob2QiICV9IHJlcXVpcmVkeyVlbmRpZiV9IGluaXQoe3tpbml0aWFsaXplci5wYXJhbWV0ZXJTaWduYXR1cmV9fSkgewogICAgICAgIHslIGlmIGNvbnRhaW5lci5AdHlwZSA9PSAiQ2xhc3NEZWNsYXJhdGlvbiIgJX0KICAgICAgICBzdXBlci5pbml0KHt7aW5pdGlhbGl6ZXIuY2FsbH19KQogICAgICAgIHslIGVuZGlmICV9CiAgICB9CiAgICB7JSBlbmRmb3IgJX0KCiAgICB7JSBmb3IgbWV0aG9kIGluIGNvbnRhaW5lci5tZXRob2RzICV9CiAgICB7eyBtZXRob2QuYWNjZXNzaWJpbGl0eSB9fXslIGlmIGNvbnRhaW5lci5AdHlwZSA9PSAiQ2xhc3NEZWNsYXJhdGlvbiIgJX0gb3ZlcnJpZGV7JSBlbmRpZiAlfSBmdW5jIHt7IG1ldGhvZC5uYW1lIH19KHt7IG1ldGhvZC5wYXJhbWV0ZXJTaWduYXR1cmUgfX0pIHt7IG1ldGhvZC5yZXR1cm5TaWduYXR1cmUgfX0gewogICAgICAgIHslIGlmIG1ldGhvZC5pc1Rocm93aW5nICV9CiAgICAgICAgcmV0dXJuIHRyeSBjdWNrb29fbWFuYWdlci5jYWxsVGhyb3dzKCJ7e21ldGhvZC5mdWxseVF1YWxpZmllZE5hbWV9fSIsCiAgICAgICAgICAgIHBhcmFtZXRlcnM6ICh7e21ldGhvZC5wYXJhbWV0ZXJOYW1lc319KSwKICAgICAgICAgICAgb3JpZ2luYWw6IG9ic2VydmVkLm1hcCB7IG8gaW4KICAgICAgICAgICAgICAgIHJldHVybiB7ICh7eyBtZXRob2QucGFyYW1ldGVyU2lnbmF0dXJlV2l0aG91dE5hbWVzIH19KXt7bWV0aG9kLnJldHVyblNpZ25hdHVyZX19IGluCiAgICAgICAgICAgICAgICAgICAgdHJ5IG8ue3ttZXRob2QubmFtZX19eyVpZiBtZXRob2QuaXNPcHRpb25hbCAlfT97JWVuZGlmJX0oe3ttZXRob2QuY2FsbH19KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIHslIGVsc2UgJX0KICAgICAgICByZXR1cm4gY3Vja29vX21hbmFnZXIuY2FsbCgie3ttZXRob2QuZnVsbHlRdWFsaWZpZWROYW1lfX0iLAogICAgICAgICAgICBwYXJhbWV0ZXJzOiAoe3ttZXRob2QucGFyYW1ldGVyTmFtZXN9fSksCiAgICAgICAgICAgIG9yaWdpbmFsOiBvYnNlcnZlZC5tYXAgeyBvIGluCiAgICAgICAgICAgICAgICByZXR1cm4geyAoe3sgbWV0aG9kLnBhcmFtZXRlclNpZ25hdHVyZVdpdGhvdXROYW1lcyB9fSl7e21ldGhvZC5yZXR1cm5TaWduYXR1cmV9fSBpbgogICAgICAgICAgICAgICAgICAgIG8ue3ttZXRob2QubmFtZX19eyVpZiBtZXRob2QuaXNPcHRpb25hbCAlfT97JWVuZGlmJX0oe3ttZXRob2QuY2FsbH19KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIHslIGVuZGlmICV9CiAgICB9CiAgICB7JSBlbmRmb3IgJX0KCnslIGluY2x1ZGUgIlN0dWJiaW5nUHJveHkuc3dpZnQuc3RlbmNpbCIgJX0KCnslIGluY2x1ZGUgIlZlcmlmaWNhdGlvblByb3h5LnN3aWZ0LnN0ZW5jaWwiICV9Cgp9Cgp7JSBpbmNsdWRlICJOb3BJbXBsU3R1Yi5zd2lmdC5zdGVuY2lsIiAlfQoKeyUgZW5kZm9yICV9Cg=="
templates["NopImplStub.swift.stencil"] = "e3tjb250YWluZXIuYWNjZXNzaWJpbGl0eX19IGNsYXNzIHt7IGNvbnRhaW5lci5uYW1lIH19U3R1Yjoge3sgY29udGFpbmVyLm5hbWUgfX0gewogICAgeyUgZm9yIHByb3BlcnR5IGluIGNvbnRhaW5lci5wcm9wZXJ0aWVzICV9CiAgICB7eyBwcm9wZXJ0eS5hY2Nlc3NpYmlsaXR5IH19eyUgaWYgY29udGFpbmVyLkB0eXBlID09ICJDbGFzc0RlY2xhcmF0aW9uIiAlfSBvdmVycmlkZXslIGVuZGlmICV9IHZhciB7eyBwcm9wZXJ0eS5uYW1lIH19OiB7eyBwcm9wZXJ0eS50eXBlIH19IHsKICAgICAgICBnZXQgewogICAgICAgICAgICByZXR1cm4gRGVmYXVsdFZhbHVlUmVnaXN0cnkuZGVmYXVsdFZhbHVlKGZvcjogKHt7cHJvcGVydHkudHlwZX19KS5zZWxmKQogICAgICAgIH0KICAgICAgICB7JSBpZm5vdCBwcm9wZXJ0eS5pc1JlYWRPbmx5ICV9CiAgICAgICAgc2V0IHsgfQogICAgICAgIHslIGVuZGlmICV9CiAgICB9CiAgICB7JSBlbmRmb3IgJX0KCiAgICB7JSBmb3IgaW5pdGlhbGl6ZXIgaW4gY29udGFpbmVyLmluaXRpYWxpemVycyAlfQogICAge3sgaW5pdGlhbGl6ZXIuYWNjZXNzaWJpbGl0eSB9fXslIGlmIGNvbnRhaW5lci5AdHlwZSA9PSAiQ2xhc3NEZWNsYXJhdGlvbiIgJX0gb3ZlcnJpZGV7JSBlbmRpZiAlfXslIGlmIGluaXRpYWxpemVyLkB0eXBlID09ICJQcm90b2NvbE1ldGhvZCIgJX0gcmVxdWlyZWR7JWVuZGlmJX0gaW5pdCh7e2luaXRpYWxpemVyLnBhcmFtZXRlclNpZ25hdHVyZX19KSB7CiAgICAgICAgeyUgaWYgY29udGFpbmVyLkB0eXBlID09ICJDbGFzc0RlY2xhcmF0aW9uIiAlfQogICAgICAgIHN1cGVyLmluaXQoe3tpbml0aWFsaXplci5jYWxsfX0pCiAgICAgICAgeyUgZW5kaWYgJX0KICAgIH0KICAgIHslIGVuZGZvciAlfQoKICAgIHslIGZvciBtZXRob2QgaW4gY29udGFpbmVyLm1ldGhvZHMgJX0KICAgIHt7IG1ldGhvZC5hY2Nlc3NpYmlsaXR5IH19eyUgaWYgY29udGFpbmVyLkB0eXBlID09ICJDbGFzc0RlY2xhcmF0aW9uIiAlfSBvdmVycmlkZXslIGVuZGlmICV9IGZ1bmMge3sgbWV0aG9kLm5hbWUgfX0oe3sgbWV0aG9kLnBhcmFtZXRlclNpZ25hdHVyZSB9fSkge3sgbWV0aG9kLnJldHVyblNpZ25hdHVyZSB9fSB7CiAgICAgICAgcmV0dXJuIERlZmF1bHRWYWx1ZVJlZ2lzdHJ5LmRlZmF1bHRWYWx1ZShmb3I6IHt7bWV0aG9kLnJldHVyblR5cGV9fS5zZWxmKQogICAgfQogICAgeyUgZW5kZm9yICV9Cn0K"

View File

@ -39,11 +39,19 @@ class Mock{{ container.name }}: {{ container.name }}, Cuckoo.Mock {
{% if method.isThrowing %}
return try cuckoo_manager.callThrows("{{method.fullyQualifiedName}}",
parameters: ({{method.parameterNames}}),
original: observed.map { o in return { ({{ method.parameterSignatureWithoutNames }}){{method.returnSignature}} in try o.{{method.name}}{%if method.isOptional %}?{%endif%}({{method.call}}) } })
original: observed.map { o in
return { ({{ method.parameterSignatureWithoutNames }}){{method.returnSignature}} in
try o.{{method.name}}{%if method.isOptional %}?{%endif%}({{method.call}})
}
})
{% else %}
return cuckoo_manager.call("{{method.fullyQualifiedName}}",
parameters: ({{method.parameterNames}}),
original: observed.map { o in return { ({{ method.parameterSignatureWithoutNames }}){{method.returnSignature}} in o.{{method.name}}{%if method.isOptional %}?{%endif%}({{method.call}}) } })
original: observed.map { o in
return { ({{ method.parameterSignatureWithoutNames }}){{method.returnSignature}} in
o.{{method.name}}{%if method.isOptional %}?{%endif%}({{method.call}})
}
})
{% endif %}
}
{% endfor %}