More testing

- Some defensive programming, like checking valid args on public methods
  arguments.
- Better testCase names.