Add a proper test to make sure that the proposed change is necessary and works as advertised

1. Ensure that the synchronous version works
2. Ensure that the asynchronous version using AsyncResult works