Added another test to verify the try/catch statements associated with avoiding ambiguous product id's  work as desired. Also done some code cleanup and extracted the code to fake objects.