コード例 #1
0
        public void BogoPromotionController_AddItem_ItemReturnsResponse()
        {
            var item            = new BogoPromotion("Chorizo", 2, 1, 50, 3);
            var createdResponse = _controller.Post(item);

            Assert.IsType <CreatedAtActionResult>(createdResponse);
        }
コード例 #2
0
        private void Save_Click(object sender, RoutedEventArgs e)
        {
            // read data from
            var           product = _productstore.GetProductbyId(_selectedProductIndx);
            BasePromotion promo;

            switch (_promoTypeSelected)
            {
            case 1: promo = new PercentagePromotion()
            {
                    PromotionPercentage = _percentageDiscount
            };
                break;

            case 2: promo = new BogoPromotion()
            {
                    Buy = _bogoBuy, Get = _bogoGet
            };
                break;

            default: promo = new NonePromotion();
                break;
            }

            product.Promotion = promo;
            _productstore.SaveProduct(product);
        }
コード例 #3
0
        public void MultiplesPromotionController_AddItem_ItemDoesntExistInStore()
        {
            var badItem     = new BogoPromotion("SomeItemThatDoesntExistInStore", 2, 1, 50, 3);
            var badResponse = _controller.Post(badItem);

            Assert.IsType <BadRequestObjectResult>(badResponse);
        }
コード例 #4
0
        public void BogoPromotionController_AddItem_ValidateAddsItem()
        {
            var item       = new BogoPromotion("Chorizo", 2, 1, 50, 3);
            var okResponse = _controller.Post(item);

            Assert.Equal(2, _bogos.GetAllItems().Count());
        }
コード例 #5
0
        public void BogoPromotionController_AddItem_DuplicateItemReturnsBadRequest()
        {
            var dupItem     = new BogoPromotion("Steak", 2, 1, 50, 3);
            var badResponse = _controller.Post(dupItem);

            Assert.IsType <BadRequestObjectResult>(badResponse);
        }
コード例 #6
0
        public void BogoPromotionController_AddItem_ItemReturnsResponseCreatedItem()
        {
            var item            = new BogoPromotion("Chorizo", 2, 1, 50, 3);
            var createdResponse = _controller.Post(item) as CreatedAtActionResult;
            var itemResult      = createdResponse.Value as BogoPromotion;

            Assert.Equal(item.Name, itemResult.Name);
        }
コード例 #7
0
        public void BogoPromotionController_AddItem_ItemReturnsBadRequest()
        {
            var badItem = new BogoPromotion("", 1, 1, 100, 1);

            _controller.ModelState.AddModelError("Name", "Required");
            var badResponse = _controller.Post(badItem);

            Assert.IsType <BadRequestObjectResult>(badResponse);
        }
コード例 #8
0
        public void BogoPromotionTests_TestProperties()
        {
            BogoPromotion promotion = new BogoPromotion("Soup", 2, 1, 100, 0);

            Assert.Equal("Soup", promotion.Name);
            Assert.Equal(2, promotion.QuantityThreshold);
            Assert.Equal(1, promotion.QuantityImpacted);
            Assert.Equal(100, promotion.PercentOff);
            Assert.Equal(0, promotion.QuantityLimit);
        }
コード例 #9
0
        public ActionResult <BogoPromotion> Get(string itemName)
        {
            BogoPromotion item = _bogos.GetItem(itemName);

            if (item == null)
            {
                return(NotFound());
            }

            return(Ok(item));
        }
コード例 #10
0
        public ActionResult Remove(string itemName)
        {
            BogoPromotion existingItem = _bogos.GetItem(itemName);

            if (existingItem == null)
            {
                return(NotFound());
            }

            _bogos.Remove(existingItem);
            return(Ok());
        }
コード例 #11
0
        public ActionResult Post([FromBody] BogoPromotion value)
        {
            //Validate item
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //Check for duplicate item
            if (_bogos.GetItem(value.Name) != null)
            {
                return(BadRequest($"An item already exists with the name {value.Name}."));
            }

            //item needs set up in store to be valid
            if (_store.GetItem(value.Name) == null)
            {
                return(BadRequest($"The item ({value.Name}) has not been set up."));
            }

            BogoPromotion item = _bogos.Add(value);

            return(CreatedAtAction("Get", new { id = item.Name }, item));
        }