public void ModifyPromotionIsNotSuccesful() { //Arrange var promotionDaoMock = new Mock<IPromotionDao>(); var promotion = new Promotion { Id = PROMOTION_ID, Status = new PromotionStatus { Type = PromotionStatusEnum.Inactive }, AvailableStatus = AvailableStatus.Always, Name = "Test Name", DisplayName = "Test Display Name", Discount = 30, AssociatedRatePlanIds = new List<int>(), BlackoutDates = new List<PromotionBlackoutDate>() }; var existingLinks = new List<int> { 2, 3, 4 }; promotionDaoMock.Setup(p => p.ModifyPromotion(It.Is<Promotion>(i => i == promotion))).Returns(false); promotionDaoMock.Setup(p => p.GetRatePlanIdsByPromoId(promotion.Id)).Returns(existingLinks); promotionDaoMock.Setup(p => p.DeleteRatePlanLinks(promotion.Id, It.IsAny<List<int>>())); promotionDaoMock.Setup(p => p.CreateRatePlanLinks(It.IsAny<List<PromotionRatePlanLink>>())); promotionDaoMock.Setup(p => p.GetBlackoutDatesByPromotionId(promotion.Id)).Returns(new List<PromotionBlackoutDate>()); promotionDaoMock.Setup(p => p.DeleteBlackoutDates(It.IsAny<List<int>>())); promotionDaoMock.Setup(p => p.ModifyBlackoutDates(It.IsAny<List<PromotionBlackoutDate>>())); promotionDaoMock.Setup(p => p.CreateBlackoutDates(It.IsAny<List<PromotionBlackoutDate>>())); var promotionManager = new PromotionManager { PromotionDao = promotionDaoMock.Object }; //Act var status = promotionManager.ModifyPromotion(promotion); //Assert Assert.IsFalse(status, "Promotion Manager returned a successful status"); promotionDaoMock.VerifyAll(); }
public void ModifyPromotionValidationFails() { //Arrange var promotion = new Promotion { Id = PROMOTION_ID, Status = new PromotionStatus { Type = PromotionStatusEnum.Inactive }, AvailableStatus = AvailableStatus.Always, Discount = 30 }; var promotionManager = new PromotionManager(); //Act var status = promotionManager.ModifyPromotion(promotion); //Assert Assert.IsFalse(status, "Promotion Manager returned a successful status"); }
public void ModifyPromotionIsSuccesful() { //Arrange var promotionDaoMock = new Mock<IPromotionDao>(); var eventTrackingManagerMock = new Mock<IEventTrackingManager>(); var promotion = new Promotion { BusinessId = BUSINESS_ID, Id = PROMOTION_ID, Status = new PromotionStatus { Type = PromotionStatusEnum.Inactive }, AvailableStatus = AvailableStatus.Always, Name = "Test Name", DisplayName = "Test Display Name", Discount = 30, AssociatedRatePlanIds = new List<int> { 1, 2 }, BlackoutDates = new List<PromotionBlackoutDate>() }; var existingLinks = new List<int> { 2, 3, 4 }; promotionDaoMock.Setup(p => p.ModifyPromotion(It.Is<Promotion>(i => i == promotion))).Returns(true); promotionDaoMock.Setup(p => p.GetRatePlanIdsByPromoId(promotion.Id)).Returns(existingLinks); promotionDaoMock.Setup(p => p.DeleteRatePlanLinks(promotion.Id, It.IsAny<List<int>>())); promotionDaoMock.Setup(p => p.CreateRatePlanLinks(It.IsAny<List<PromotionRatePlanLink>>())); promotionDaoMock.Setup(p => p.GetBlackoutDatesByPromotionId(promotion.Id)).Returns(new List<PromotionBlackoutDate>()); promotionDaoMock.Setup(p => p.DeleteBlackoutDates(It.IsAny<List<int>>())); promotionDaoMock.Setup(p => p.ModifyBlackoutDates(It.IsAny<List<PromotionBlackoutDate>>())); promotionDaoMock.Setup(p => p.CreateBlackoutDates(It.IsAny<List<PromotionBlackoutDate>>())); eventTrackingManagerMock.Setup(e => e.CreateBusinessEventAsync(It.Is<long>(i => i == BUSINESS_ID), It.Is<BusinessEventTypesEnum>(b => b == BusinessEventTypesEnum.PromotionModified), It.Is<int>(i => i == PROMOTION_ID), It.IsAny<string>())); var promotionManager = new PromotionManager { EventTrackingManager = eventTrackingManagerMock.Object, PromotionDao = promotionDaoMock.Object }; //Act var status = promotionManager.ModifyPromotion(promotion); //Assert Assert.IsTrue(status, "Promotion Manager did not return a successful status"); promotionDaoMock.VerifyAll(); eventTrackingManagerMock.VerifyAll(); }