public void CreatePromotionWithMissingDataThrowsException() { //Arrange var promotionDao = new Mock<IPromotionDao>(); var promotion = new Promotion { BusinessId = BUSINESS_ID }; var promotionManager = new PromotionManager { PromotionDao = promotionDao.Object }; try { //Act promotionManager.CreatePromotion(promotion); Assert.Fail("Exception not thrown"); } catch (ValidationException ve) { // Assert Assert.AreEqual(Errors.SRVEX30149.ToString(), ve.Code, "Validation exception did not match"); } }
public void CreatePromotionWithInvalidStayDatesThrowsException() { //Arrange var promotionDao = new Mock<IPromotionDao>(); var promotion = new Promotion { BusinessId = BUSINESS_ID, Name = "Test", DisplayName = "Test", Discount = 20, StayStartDate = DateTime.Now.AddDays(1), StayEndDate = DateTime.Now }; var promotionManager = new PromotionManager { PromotionDao = promotionDao.Object }; try { //Act promotionManager.CreatePromotion(promotion); Assert.Fail("Exception not thrown"); } catch (ValidationException ve) { // Assert Assert.AreEqual(Errors.SRVEX30151.ToString(), ve.Code, "Validation exception did not match"); } }
public void CreatePromotionStatusDefaultedToActive() { //Arrange var promotionDao = new Mock<IPromotionDao>(); var eventTrackingManager = new Mock<IEventTrackingManager>(); var checkStatus = new PromotionStatus() { Type = PromotionStatusEnum.Active }; var promotion = new Promotion { BusinessId = BUSINESS_ID, Name = "Test", DisplayName = "Test", Discount = 10, StayStartDate = DateTime.Now, StayEndDate = DateTime.Now.AddDays(1), AssociatedRatePlanIds = new List<int> { 1, 2 }, BlackoutDates = new List<PromotionBlackoutDate>(), }; promotionDao.Setup(p => p.CreatePromotion(promotion)).Callback(delegate { promotion.Id = PROMOTION_ID; }); promotionDao.Setup(p => p.CreateRatePlanLinks(It.IsAny<List<PromotionRatePlanLink>>())); promotionDao.Setup(p => p.CreateBlackoutDates(It.IsAny<List<PromotionBlackoutDate>>())); eventTrackingManager.Setup(e => e.CreateBusinessEventAsync(BUSINESS_ID, BusinessEventTypesEnum.PromotionAdded, promotion.Id, It.IsAny<string>())); var promotionManager = new PromotionManager { EventTrackingManager = eventTrackingManager.Object, PromotionDao = promotionDao.Object }; //Act promotionManager.CreatePromotion(promotion); //Assert Assert.AreEqual(checkStatus.Type, promotion.Status.Type, "Promotion Manager Status has changed."); promotionDao.VerifyAll(); eventTrackingManager.Verify(e => e.CreateBusinessEventAsync(BUSINESS_ID, BusinessEventTypesEnum.PromotionAdded, PROMOTION_ID, null), Times.Once); }