Pull this out so that other implementors of this interface can use a common test implementation
Added unit tests for this wrapper, and fixed some inconsistencies between the two interfaces