fixes some deprecation warnings, and another attempt at writing good closures.

This commit is contained in:
KaosDG 2017-09-19 12:37:46 -04:00 committed by Tadeas Kriz
parent 4ca15ff61d
commit dec5e08c1e
4 changed files with 6 additions and 14 deletions

View File

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

View File

@ -40,12 +40,8 @@ class Mock{{ container.name }}: {{ container.name }}, Cuckoo.Mock {
return try cuckoo_manager.callThrows("{{method.fullyQualifiedName}}",
parameters: ({{method.parameterNames}}),
original: observed.map { o in
{% if method.hasClosureParams %}
return { ({{ method.parameterNames }}){{method.returnSignature}} in
{% else %}
return { (args){{method.returnSignature}} in
let ({{ method.parameterNames }}) = args
{% endif %}
{% if method.returnType != "Void" %}return{% endif %} try o.{{method.name}}{%if method.isOptional %}?{%endif%}({{method.call}})
}
})
@ -53,12 +49,8 @@ class Mock{{ container.name }}: {{ container.name }}, Cuckoo.Mock {
return cuckoo_manager.call("{{method.fullyQualifiedName}}",
parameters: ({{method.parameterNames}}),
original: observed.map { o in
{% if method.hasClosureParams %}
return { ({{ method.parameterNames }}){{method.returnSignature}} in
{% else %}
return { (args){{method.returnSignature}} in
let ({{ method.parameterNames }}) = args
{% endif %}
{% if method.returnType != "Void" %}return{% endif %} o.{{method.name}}{%if method.isOptional %}?{%endif%}({{method.call}})
}
})

View File

@ -100,7 +100,7 @@ public class MockManager {
if unverifiedStubCallsIndexes.isEmpty == false {
let unverifiedCalls = unverifiedStubCallsIndexes.map { stubCalls[$0] }.map { call in
if let bracketIndex = call.method.range(of: "(")?.lowerBound {
let name = call.method.substring(to: bracketIndex)
let name = call.method[..<bracketIndex]
return name + call.parametersAsString
} else {
if call.method.hasSuffix("#set") {

View File

@ -13,7 +13,7 @@ public protocol StubCall {
public struct ConcreteStubCall<IN>: StubCall {
public let method: String
public let parameters: IN
public let parameters: (IN)
public var parametersAsString: String {
let string = String(describing: parameters)
@ -22,11 +22,11 @@ public struct ConcreteStubCall<IN>: StubCall {
} else {
// If only one parameter add brackets and quotes
let wrappedParameter = String(describing: (parameters, 0))
return wrappedParameter.substring(to: wrappedParameter.characters.index(wrappedParameter.endIndex, offsetBy: -4)) + ")"
return wrappedParameter[..<wrappedParameter.characters.index(wrappedParameter.endIndex, offsetBy: -4)] + ")"
}
}
public init(method: String, parameters: IN) {
public init(method: String, parameters: (IN)) {
self.method = method
self.parameters = parameters
}