This condition isn't right; empty-string values are permissible (and honestly, should be checked in the unit test below).