add tests for Preconditions to ensure 100% code coverage