コード例 #1
0
ファイル: PromotionManagerTest.cs プロジェクト: ognjenm/egle
            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();
            }
コード例 #2
0
ファイル: PromotionManagerTest.cs プロジェクト: ognjenm/egle
            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");
            }
コード例 #3
0
ファイル: PromotionManagerTest.cs プロジェクト: ognjenm/egle
            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();
            }