added basic validation to the product model and the respective tests
started using factories for testing