I just finished building you code and running your tests and all of them passed. Then I made a few very simple changes:
What advantage is there to using h2 when Android uses SQLite?
The reason h2 was chosen is because sqlite requires native binaries. Here's a recent discussion in the robolectric google group:
We'll add a story to our backlog for making the database connection strings configurable.
-Phil & Tyler
Ok, so it requires native binaries, but all of the major OSes are covered by the one I sent (Windows, Linux, and Mac OS X.) The problem is that h2 is not a good substitution for SQLite. I have already run into numerous cases where it does not reproduce the same results for code I am trying to test. It doesn't support many of the queries, triggers, or virtual tables (especially those using fts3) very robustly.
Making the database configurable would be great! For now, I will use my modified branch of your code. Thanks!