Beispiel #1
0
            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");
                }
            }
Beispiel #2
0
            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");
                }
            }
Beispiel #3
0
            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);
            }