When I have a service that has a simple unary interaction, writing a unit test for the ServiceImpl is straightforward enough, does the impl put the right protobuf into the response parameter of the function. When I have a service that has a streaming interaction, a streaming object (ServerWriter, eg) is injected as a parameter giving you the capacity to write out to that stream. It seems to me, somewhat naively, that this should be a 'ServerWriterInterface' pointer, rather than a ServerWriter itself (which is marked as final), so that you could inject a MockServerWriter object and count how many times "Write" got called and with what protos.
Which possibly says to me that I'm missing something on how one goes about testing Services. The online tutorial/documentation goes into detail about how one can mock out a stub for C++ client code so that can be unit tested easily. But it's not clear to me how to go about mocking the Service side.