added product controller and tests
cleaned up exception assertions