add PromotionFactory class and test
add getPromotionByType method and test
add PromotionSecondHalf class and test
modify Promotion class to be abstract and add calculate method
modify PromotionDaoImpl getPromotion method to use PromotionFactory
add toString method in Promotion class
override calculate in PromotionSecondHalf and add test
modify getPromotionByType method and test
create PromotionOneFree class and test
add one free case in getPromotionByType method and test
override calculate in PromotionOneFree and test
add Promotion class and test and override calculate and add test