While it's certainly possible to mock Consul's API responses, the route we took for Consul's own Go client was to just fork a new Consul server process and use the actual API's instead. We wrapped this into a little library that we used in a number of places, which you can see here:
https://github.com/hashicorp/consul/tree/master/testutil. This won't directly solve your use case, but you could do something similar in Java, I imagine, and you'll spend less time trying to stub the world, especially as new releases of Consul are made with new API's.