More unit tests for storage drivers and a bug fix for memory storage

This PR contains several unit tests. It also contains a bug fix for memory storage. The bug could be reproduced with the newly added unit tests in this PR.
Why are we placing the 100 and 10 restriction? If so we should also document them in the StorageDriver interface