Description
The only reason we inject ClusterContext into the various service HTTP clients is to get the service URI. This is overcomplicating a lot of unit tests, as they are forced to build a large portion of the ClusterContext's backing configuration to support this. Instead, we can create IServiceUriProvider to provide random service URIs, and inject this. Then it is much more easily mockable in unit tests.