A few more observations:
a) Using code statements in setUp() like this
could be slightly mis-leading, as the methods setUp() and tearDown() will be executed before and after each test case (as opposed to once per test class).
b) the populateDatabase*() methods should imho not be included in the test suite (if we decide to keep a suite method, which in my opinion is completely redundant).
c) Shouldn't the populateDatabase*() methods be included in the setUp() method, so that each test has a clean database before it is being executed ?