Ejemplo n.º 1
0
 public async Task Arguments_are_validated_for_CanRedeemCoupon_method()
 {
     var mockLogger   = Mock.Of <ILogger>();
     var mockProvider = Mock.Of <ICouponProvider>();
     var sut          = new CouponManager(mockLogger, mockProvider);
     await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.CanRedeemCoupon(Guid.NewGuid(), Guid.NewGuid(), null));
 }
        public void TestCase5_CheckEvaluatorEmpty()
        {
            // Setup
            MyLogger         log      = new MyLogger();
            MyCouponProvider cp       = new MyCouponProvider();
            Guid             couponId = new Guid("00000000-0000-0000-0000-00000000BBBB");
            Guid             userId   = new Guid("00000000-0000-0000-0000-00000000ABAB");

            List <Func <Coupon, Guid, bool> > theList = new List <Func <Coupon, Guid, bool> >();

            CouponManager cm = new CouponManager(log, cp);

            try
            {
                // Apply
                Task <bool> task = cm.CanRedeemCoupon(couponId, userId, theList);
                task.Wait();
                bool result = task.Result;

                // Check
                Assert.AreEqual(result, true);
            }
            catch (Exception e)
            {
                Assert.Fail(e.Message);
            }
        }
Ejemplo n.º 3
0
        public void TestCanRedeemCoupon()
        {
            var cm1 = new CouponManager(LogManager.GetCurrentClassLogger(), new CouponProvider());

            var ex = Assert.CatchAsync <ArgumentNullException>(() => cm1.CanRedeemCoupon(Guid.NewGuid(), Guid.NewGuid(), null));

            Assert.AreEqual(ex.ParamName, "evaluators");

            var evaluators = new List <Func <CouponManager, Guid, bool> >();

            Assert.Catch <KeyNotFoundException>(async() => await cm1.CanRedeemCoupon(Guid.Empty, Guid.NewGuid(), evaluators));

            var         xx = Guid.NewGuid();
            Task <bool> r1;

            r1 = cm1.CanRedeemCoupon(xx, Guid.NewGuid(), evaluators);
            Assert.IsTrue(r1.Result);

            evaluators.Add((manager, guid) => true);
            r1 = cm1.CanRedeemCoupon(xx, Guid.NewGuid(), evaluators);
            Assert.IsTrue(r1.Result);

            evaluators.Add((manager, guid) => false);
            r1 = cm1.CanRedeemCoupon(xx, Guid.NewGuid(), evaluators);
            Assert.IsFalse(r1.Result);
        }
Ejemplo n.º 4
0
        public void CouponManagerCanRedeemCouponTest_Evaluators()
        {
            var logger         = new Mock <ILogger>();
            var couponProvider = new Mock <ICouponProvider>();
            var couponManager  = new CouponManager(logger.Object, couponProvider.Object);

            couponProvider.Setup(s => s.Retrieve(It.IsAny <Guid>())).ReturnsAsync(new Coupon());

            var evals = new List <Func <Coupon, Guid, bool> >()
            {
                (coupon, guid) => false,
                (coupon, guid) => false
            };

            var result = couponManager.CanRedeemCoupon(Guid.Empty, Guid.Empty, evals).Result;

            Assert.IsFalse(result);

            evals = new List <Func <Coupon, Guid, bool> >()
            {
                (coupon, guid) => true,
                (coupon, guid) => false
            };

            var result1 = couponManager.CanRedeemCoupon(Guid.Empty, Guid.Empty, evals).Result;

            Assert.IsTrue(result1);
        }
Ejemplo n.º 5
0
        private void ApplyCouponToCart()
        {
            var couponManager  = new CouponManager(_shoppingCartRepository);
            var discountAmount = couponManager.GetCouponDiscountAmountForCart();

            _shoppingCartRepository.SetDiscountAmountByCoupon(discountAmount);
        }
Ejemplo n.º 6
0
        public void CouponManager_Ensure_Instance_Has_Created_Returns_True()
        {
            var coupon = new CouponManager(new Cart());

            // assert
            Assert.IsNotNull(coupon);
        }
        public void TestCase3_CheckEvaluatorIsNull()
        {
            // Setup
            MyLogger         log      = new MyLogger();
            MyCouponProvider cp       = new MyCouponProvider();
            Guid             couponId = new Guid("00000000-0000-0000-0000-00000000BA12");
            Guid             userId   = new Guid("00000000-0000-0000-0000-000000001111");

            List <Func <Coupon, Guid, bool> > theList = null;

            CouponManager cm = new CouponManager(log, cp);

            try
            {
                // Apply
                Task <bool> task = cm.CanRedeemCoupon(couponId, userId, theList);
                task.Wait();
                bool result = task.Result;

                // Check
                Assert.Fail("Exception must be thrown");
            }
            catch (Exception e)
            {
                Assert.IsTrue(e.Message.Contains("evaluators"));
            }
        }
        public void TestCase2_CheckFalse()
        {
            // Setup
            MyLogger         log      = new MyLogger();
            MyCouponProvider cp       = new MyCouponProvider();
            Guid             couponId = new Guid("00000000-0000-0000-0000-00000000BA12");
            Guid             userId   = new Guid("00000000-0000-0000-0000-000000001111");

            List <Func <Coupon, Guid, bool> > theList = new List <Func <Coupon, Guid, bool> >();

            for (int i = 0; i < 10; i++)
            {
                CouponGuid temp = new CouponGuid();
                theList.Add(temp.Evaluate);
            }
            CouponManager cm = new CouponManager(log, cp);

            // Apply
            try
            {
                Task <bool> task = cm.CanRedeemCoupon(couponId, userId, theList);
                task.Wait();
                bool result = task.Result;

                // Check
                Assert.AreEqual(result, false);
            }
            catch (Exception e)
            {
                Assert.Fail(e.Message);
            }
        }
Ejemplo n.º 9
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
 }
        public void TestCase4_CheckCouponIsNull()
        {
            // Setup
            MyLogger         log      = new MyLogger();
            MyCouponProvider cp       = new MyCouponProvider();
            Guid             couponId = new Guid("00000000-0000-0000-0000-000000002222");
            Guid             userId   = new Guid("00000000-0000-0000-0000-000000001111");

            List <Func <Coupon, Guid, bool> > theList = new List <Func <Coupon, Guid, bool> >();

            for (int i = 0; i < 10; i++)
            {
                CouponGuid temp = new CouponGuid();
                theList.Add(temp.Evaluate);
            }
            CouponManager cm = new CouponManager(log, cp);

            try
            {
                // Apply
                Task <bool> task = cm.CanRedeemCoupon(couponId, userId, theList);
                task.Wait();
                bool result = task.Result;

                // Check
                Assert.Fail("Exception must be thrown");
            }
            catch (Exception e)
            {
                Assert.IsTrue(e.Message.Contains("The given key was not present in the dictionary"));
            }
        }
Ejemplo n.º 11
0
        public void CouponManagerCanRedeemCouponTest_ArgumentNull()
        {
            var logger         = new Mock <ILogger>();
            var couponProvider = new Mock <ICouponProvider>();
            var couponManager  = new CouponManager(logger.Object, couponProvider.Object);

            Assert.ThrowsAsync <ArgumentNullException>(async() => await couponManager.CanRedeemCoupon(Guid.Empty, Guid.Empty, null));
        }
Ejemplo n.º 12
0
        public bool CheckCounponOtp(string ApiKey, string Counpon, string Otp, string DealerName)
        {
            if (ApiKey != ServerConfig.ServicesApiKey)
            {
                return(false);
            }

            return(CouponManager.CheckCounponOtp(Counpon, Otp, DealerName));
        }
Ejemplo n.º 13
0
        public void CouponManagerCanRedeemCouponTest_CouponNotFound()
        {
            var logger         = new Mock <ILogger>();
            var couponProvider = new Mock <ICouponProvider>();
            var couponManager  = new CouponManager(logger.Object, couponProvider.Object);
            var evals          = new List <Func <Coupon, Guid, bool> >();

            Assert.ThrowsAsync <KeyNotFoundException>(async() => await couponManager.CanRedeemCoupon(Guid.Empty, Guid.Empty, evals));
        }
Ejemplo n.º 14
0
        void rptContents_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                var actInfo = new CouponActInfo(e.Item.DataItem);

                var ltlItemIndex  = e.Item.FindControl("ltlItemIndex") as Literal;
                var ltlTitle      = e.Item.FindControl("ltlTitle") as Literal;
                var ltlKeywords   = e.Item.FindControl("ltlKeywords") as Literal;
                var ltlStartDate  = e.Item.FindControl("ltlStartDate") as Literal;
                var ltlEndDate    = e.Item.FindControl("ltlEndDate") as Literal;
                var ltlUserCount  = e.Item.FindControl("ltlUserCount") as Literal;
                var ltlPVCount    = e.Item.FindControl("ltlPVCount") as Literal;
                var ltlIsEnabled  = e.Item.FindControl("ltlIsEnabled") as Literal;
                var ltlCoupons    = e.Item.FindControl("ltlCoupons") as Literal;
                var ltlRelate     = e.Item.FindControl("ltlRelate") as Literal;
                var ltlPreviewUrl = e.Item.FindControl("ltlPreviewUrl") as Literal;
                var ltlEditUrl    = e.Item.FindControl("ltlEditUrl") as Literal;

                ltlItemIndex.Text = (e.Item.ItemIndex + 1).ToString();
                ltlTitle.Text     = actInfo.Title;
                ltlKeywords.Text  = DataProviderWX.KeywordDAO.GetKeywords(actInfo.KeywordID);
                ltlStartDate.Text = DateUtils.GetDateAndTimeString(actInfo.StartDate);
                ltlEndDate.Text   = DateUtils.GetDateAndTimeString(actInfo.EndDate);
                ltlUserCount.Text = actInfo.UserCount.ToString();
                ltlPVCount.Text   = actInfo.PVCount.ToString();

                ltlIsEnabled.Text = StringUtils.GetTrueOrFalseImageHtml(!actInfo.IsDisabled);

                var couponInfoList = DataProviderWX.CouponDAO.GetCouponInfoList(PublishmentSystemID, actInfo.ID);
                foreach (var couponInfo in couponInfoList)
                {
                    ltlCoupons.Text +=
                        $@"<a href=""{BackgroundCouponSN.GetRedirectUrl(PublishmentSystemID, couponInfo.ID,
                            GetRedirectUrl(PublishmentSystemID))}"">{couponInfo.Title}</a>&nbsp;&nbsp;" +
                        ",";
                }
                if (ltlCoupons.Text.Length > 0)
                {
                    ltlCoupons.Text = ltlCoupons.Text.Substring(0, ltlCoupons.Text.Length - 1);
                }
                ltlRelate.Text =
                    $@"<a href=""javascript:;"" onclick=""{Modal.CouponRelated.GetOpenWindowString(
                        PublishmentSystemID, actInfo.ID)}"">关联优惠劵</a>";

                if (couponInfoList.Count > 0)
                {
                    var urlPreview = CouponManager.GetCouponHoldUrl(PublishmentSystemInfo, actInfo.ID);
                    urlPreview         = BackgroundPreview.GetRedirectUrlToMobile(urlPreview);
                    ltlPreviewUrl.Text = $@"<a target=""_blank"" href=""{urlPreview}"">预览</a>";
                }

                var urlEdit = BackgroundCouponActAdd.GetRedirectUrl(PublishmentSystemID, actInfo.ID);
                ltlEditUrl.Text = $@"<a href=""{urlEdit}"">编辑</a>";
            }
        }
Ejemplo n.º 15
0
        public void WhenGetCouponDiscount_IfCampaignOfCartIsNull_Expect0()
        {
            var cart = new Mock <IShoppingCartRepository>();

            cart.Setup(c => c.GetCart()).Returns(new ShoppingCart());

            var manager = new CouponManager(cart.Object);
            var result  = manager.GetCouponDiscountAmountForCart();

            Assert.Equal(0, result);
        }
Ejemplo n.º 16
0
        public void WhenGetCouponDiscount_NotEnoughCartAmount_Expect0()
        {
            var campaignRepository = new Mock <ICampaignRepository>();
            var repository         = new ShoppingCartRepository();
            var service            = new ShoppingCartService(repository, campaignRepository.Object, _couponRepository);

            service.ApplyCoupon(_coupon);

            var manager = new CouponManager(repository);
            var result  = manager.GetCouponDiscountAmountForCart();

            Assert.Equal(0, result);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Get All Coupons
        /// </summary>
        /// <returns></returns>
        private static List <CouponBusinessModel> GetAllCoupons()
        {
            var couponManager = new CouponManager();

            var couponResult = couponManager.GetAllCoupons();

            if (couponResult.Success)
            {
                return(couponResult.CouponList);
            }

            //Suppress the Exception for now
            return(new List <CouponBusinessModel>());
        }
Ejemplo n.º 18
0
        async Task LoadCoupons()
        {
            IsBusy = true;

            var coupons = await CouponManager.GetAsync();

            Coupons.Clear();
            foreach (var coupon in coupons)
            {
                Coupons.Add(coupon);
            }

            IsBusy = false;
        }
Ejemplo n.º 19
0
        public void Insert(int publishmentSystemId, int couponId, int totalNum)
        {
            var couponSnList = CouponManager.GetCouponSN(totalNum);

            foreach (var sn in couponSnList)
            {
                string sqlString =
                    $"INSERT INTO {TableName} (PublishmentSystemID, CouponID, SN, Status) VALUES ({publishmentSystemId}, {couponId}, '{sn}', '{ECouponStatusUtils.GetValue(ECouponStatus.Unused)}')";

                ExecuteNonQuery(sqlString);
            }

            DataProviderWx.CouponDao.UpdateTotalNum(couponId, DataProviderWx.CouponSnDao.GetTotalNum(publishmentSystemId, couponId));
        }
Ejemplo n.º 20
0
        public async Task Arguments_for_the_CouponManager_class_are_validated(bool loggerIsNull, bool couponProviderIsNull, bool exceptionExpected)
        {
            var mockLogger   = loggerIsNull ? null : Mock.Of <ILogger>();
            var mockProvider = couponProviderIsNull ? null : Mock.Of <ICouponProvider>();

            if (exceptionExpected)
            {
                Assert.ThrowsException <ArgumentNullException>(() => new CouponManager(mockLogger, mockProvider));
                return;
            }
            var couponManager = new CouponManager(mockLogger, mockProvider);

            Assert.IsNotNull(couponManager);
        }
Ejemplo n.º 21
0
        public void WhenGetCouponDiscount_GetSuccessfully()
        {
            var campaignRepository = new Mock <ICampaignRepository>();
            var product            = new Product("Iphone 5S", 1000, new Category("Phone"));
            var repository         = new ShoppingCartRepository();
            var service            = new ShoppingCartService(repository, campaignRepository.Object, _couponRepository);

            service.AddItem(product, 1);
            service.ApplyCoupon(_coupon);
            var expectedDiscount = 100;

            var manager        = new CouponManager(repository);
            var couponDiscount = manager.GetCouponDiscountAmountForCart();

            Assert.Equal(expectedDiscount, couponDiscount);
        }
Ejemplo n.º 22
0
        public async Task CanRedeemCoupon_Should_ThrowException_When_Evaluators_Is_Null()
        {
            //Arrange
            Mock <ILogger>         logger         = new Mock <ILogger>();
            Mock <ICouponProvider> couponProvider = new Mock <ICouponProvider>();

            //Assign
            var couponManager = new CouponManager(logger.Object, couponProvider.Object);
            var couponGuid    = Guid.NewGuid();
            var userId        = Guid.NewGuid();

            var exception = await Assert.ThrowsAsync <ArgumentNullException>(() => couponManager.CanRedeemCoupon(couponGuid, userId, null));

            //Assert
            Assert.Equal("Value cannot be null. (Parameter 'evaluators')", exception.Message);
        }
Ejemplo n.º 23
0
        public async Task Throw_Exception_When_Evaluators_Null()
        {
            //Arrange
            var mockLogger         = new Mock <ILogger>();
            var mockCouponProvider = new Mock <ICouponProvider>();
            var couponId           = new Guid();
            var userId             = new Guid();

            var manager = new CouponManager(mockLogger.Object, mockCouponProvider.Object);
            IEnumerable <Func <Coupon, Guid, bool> > evaluators = null;

            //Act
            var exception = await Assert.ThrowsAsync <ArgumentNullException>(() => manager.CanRedeemCoupon(couponId, userId, evaluators));

            //Assert
            Assert.Equal(nameof(evaluators), exception.ParamName);
        }
Ejemplo n.º 24
0
        public async Task CanRedeemCoupon_Should_ThrowException_When_Coupon_Is_Null()
        {
            //Arrange
            Mock <ICouponProvider> couponProvider = new Mock <ICouponProvider>();
            Mock <IEnumerable <Func <Coupon, Guid, bool> > > evaluators = new Mock <IEnumerable <Func <Coupon, Guid, bool> > >();
            Mock <ILogger> logger = new Mock <ILogger>();

            couponProvider.Setup(x => x.Retrieve(It.IsAny <Guid>()))
            .Returns(Task.FromResult <Coupon>(null));

            //Assign
            var couponManager = new CouponManager(logger.Object, couponProvider.Object);
            var couponGuid    = Guid.NewGuid();
            var userId        = Guid.NewGuid();

            //Assert
            await Assert.ThrowsAsync <KeyNotFoundException>(() => couponManager.CanRedeemCoupon(couponGuid, userId, evaluators.Object));
        }
Ejemplo n.º 25
0
        public async Task Throw_Exception_When_Retrieved_Coupon_Null()
        {
            //Arrange
            var couponId           = new Guid();
            var userId             = new Guid();
            var mockLogger         = new Mock <ILogger>();
            var mockEvaluators     = new List <Func <Coupon, Guid, bool> >();
            var mockCouponProvider = new Mock <ICouponProvider>();

            mockCouponProvider
            .Setup(provider => provider.Retrieve(couponId))
            .ReturnsAsync(() => null);

            var manager = new CouponManager(mockLogger.Object, mockCouponProvider.Object);

            //Act Assert
            await Assert.ThrowsAsync <KeyNotFoundException>(() => manager.CanRedeemCoupon(couponId, userId, mockEvaluators));
        }
Ejemplo n.º 26
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("PublishmentSystemId");
            _scenceId = Body.GetQueryInt("scenceID");

            if (!IsPostBack)
            {
                var pageTitle = _scenceId > 0 ? "编辑站点场景" : "添加站点场景";
                //base.BreadCrumbConsole(AppManager.CMS.LeftMenu.Id_Site, pageTitle, AppManager.Permission.Platform_Site);
                LtlPageTitle.Text = pageTitle;

                LtlImageUrl.Text =
                    $@"<img id=""preview_imageUrl"" src=""{CouponManager.GetImageUrl(PublishmentSystemInfo,
                        string.Empty)}"" width=""370"" align=""middle"" />";

                if (_scenceId > 0)
                {
                    var scenceInfo = DataProviderWx.ScenceDao.GetScenceInfo(_scenceId);

                    TbKeywords.Text       = DataProviderWx.KeywordDao.GetKeywords(scenceInfo.KeywordId);
                    CbIsEnabled.Checked   = !scenceInfo.IsDisabled;
                    DtbStartDate.DateTime = scenceInfo.StartDate;
                    DtbEndDate.DateTime   = scenceInfo.EndDate;
                    TbTitle.Text          = scenceInfo.Title;
                    if (!string.IsNullOrEmpty(scenceInfo.ImageUrl))
                    {
                        LtlImageUrl.Text =
                            $@"<img id=""preview_imageUrl"" src=""{PageUtility.ParseNavigationUrl(
                                PublishmentSystemInfo, scenceInfo.ImageUrl)}"" width=""370"" align=""middle"" />";
                    }
                    TbSummary.Text = scenceInfo.Summary;
                }
                else
                {
                    DtbEndDate.DateTime = DateTime.Now.AddMonths(1);
                }
            }
        }
Ejemplo n.º 27
0
        public void ApplyDiscount_Ensure_Expected_Discount_Applied_Returns_True(
            string productName, string productDesc, double productUnitPrice,
            int productQuantity, double discount, DiscountType discountType,
            double minPurchaseAmount, double expectedResult)
        {
            var cart = new Cart();
            // -- create product
            var product = new Product(productName, productDesc, productUnitPrice, _categoryTech);

            _shoppingCart = new ShoppingCartManager(cart);
            _shoppingCart.AddItem(product, productQuantity);

            // -- apply coupon
            var coupon = new Coupon(discount, minPurchaseAmount, discountType);

            cart.CartCoupons.Add(coupon);
            var result = new CouponManager(cart).ApplyDiscount();

            Assert.AreEqual(result, expectedResult);
        }
Ejemplo n.º 28
0
        public void Setup()
        {
            couponManager = new CouponManager(mockLogger.Object, mockCouponProvider.Object);

            coupon = new Coupon();

            emptyEvaluator = new List <Func <Coupon, Guid, bool> >();

            sucessEvaluators = new List <Func <Coupon, Guid, bool> >()
            {
                (c, g) => { return(true); },
                (c, g) => { return(false); }
            };

            failEvaluators = new List <Func <Coupon, Guid, bool> >()
            {
                (c, g) => { return(false); },
                (c, g) => { return(false); }
            };
        }
Ejemplo n.º 29
0
        public async Task CanRedeemCoupon_Should_Return_True_When_No_Evaluators()
        {
            //Arrange
            Mock <ICouponProvider> couponProvider = new Mock <ICouponProvider>();

            couponProvider.Setup(x => x.Retrieve(It.IsAny <Guid>()))
            .Returns(Task.FromResult(new Coupon()));

            IEnumerable <Func <Coupon, Guid, bool> > evaluators = new List <Func <Coupon, Guid, bool> >();
            Mock <ILogger> logger = new Mock <ILogger>();

            //Assign
            var couponManager   = new CouponManager(logger.Object, couponProvider.Object);
            var couponGuid      = Guid.NewGuid();
            var userId          = Guid.NewGuid();
            var canRedeemCoupon = await couponManager.CanRedeemCoupon(couponGuid, userId, evaluators);

            //Assert
            Assert.True(canRedeemCoupon);
        }
Ejemplo n.º 30
0
        public async Task Return_True_When_Evaluators_Empty()
        {
            //Arrange
            var couponId       = new Guid();
            var userId         = new Guid();
            var mockLogger     = new Mock <ILogger>();
            var mockEvaluators = new List <Func <Coupon, Guid, bool> >();

            var mockCouponProvider = new Mock <ICouponProvider>();

            mockCouponProvider
            .Setup(provider => provider.Retrieve(couponId))
            .ReturnsAsync(() => new Coupon());

            var manager = new CouponManager(mockLogger.Object, mockCouponProvider.Object);

            //Act
            var result = await manager.CanRedeemCoupon(couponId, userId, mockEvaluators);

            //Assert
            Assert.True(result);
        }