Refactor charge_on_balanced tests

Picking up from #2059, this commit refactors the existing tests for charge_on_balanced (which is where the bug in #2057 lives) to use VCR instead of mock objects. I was hoping it would make the tests cleaner but it looks like I don't quite fully understand how to use VCR yet. :-/