added setProductQuantity method
added edge case tests to setProductQuantity method
Added deleteByKey to AbstractFactoryPlus
add buyProduct methods to the shopping list