Number of thoughts hit me based on this spec:

1. Based on the number implementation details that you are needing to stub I believe there is at least one or two other classes around that could be developed in such a way that you can test them and not have to stub out all these implementation details.

2. A number of these specs, if they survive in their current form after addressing point 1 above can be DRYed up.