We have an Invoker test class in M1 that makes writing test service client logic a lot easier. We had some discussions around introducing a Provider class, but decide to punt to after M1. In terms of what a Provider could offer:
o Automatic registration of service with SwithYard runtime
o Helper methods to set service contract based on Java interface or WSDL
o Store messages received with optional retrieval
o Specify response message to generate
o Specify fault message to generate
How is this useful? Any time you want to test a reference to a SwitchYard service without having to write the service implementation, e.g.
o Test a SOAP binding
o Test an input, output, or fault transformation
o Test an @Reference dependency in a Bean service
I imagine it might look something like this:
Provider inOut = newProvider("MyTestService") .interfaceJava(OrderService.class) .replyWithOut("This is the response") .register();
Or this:
Provider inOnly = newProvider("MyTestService") .operation("testOperation") .expectedInputType("java:org.example.MyObject") .register();