(require-extension test) ; Setup some fake ports for testing (define input (open-input-string "some-string")) (define ouput (open-output-string)) ; Do some actual error testing (test-group "Non-port or non-version calls" (test-error "Non port call on input" (define xbmc (json-rpc-server "input" output "2.0"))) (test-error "Non port call on output" (define xbmc (json-rpc-server input "output" "2.0"))) (test-error "Non correct version call" (define xbmc (json-rpc-server input output "3.0")))) (test-group "Non-string method calls" (test-error "Call method as symbol" (xbmc 'foo)) (test-error "Call method as number" (xbmc 1)) (test-error "Call method as list" (xbmc '(1 2))) (test-error "Call method as vector" (xbmc '#())) (test-error "Call method as boolean" (xbmc 1))) (test-group "Non-keyword param calls" (test-error "Call params as a list" (xbmc "foo" '(a b c))) (test-error "Call params as a string" (xbmc "foo" "bar")) (test-error "Call params as a number" (xbmc "foo" 1))) (test-exit)