I wonder if, to properly mimic what would happen in real storage, this should return a clone of the registry data instead of the original--so when clients manipulate it, the edits don't automatically show up in the storage. Otherwise, unit test results could be misleading in some cases.

(In fact, I think this is already an issue--if you had forgotten the call to saveRegistry() in addPackage(), your unit test would still pass, I think.)

(comment moved from commit to pull request)