Пример #1
0
        public void MultiplesPromotionController_AddItem_ItemReturnsResponse()
        {
            var item            = new MultiplesPromotion("Bread", 2, 3.00m);
            var createdResponse = _controller.Post(item);

            Assert.IsType <CreatedAtActionResult>(createdResponse);
        }
Пример #2
0
        public void MultiplesPromotionController_AddItem_ItemDoesntExistInStore()
        {
            var badItem     = new MultiplesPromotion("SomeItemThatDoesntExistInStore", 2, 3.00m);
            var badResponse = _controller.Post(badItem);

            Assert.IsType <BadRequestObjectResult>(badResponse);
        }
Пример #3
0
        public void MultiplesPromotionController_AddItem_ValidateAddsItem()
        {
            var item       = new MultiplesPromotion("Bread", 2, 3.00m);
            var okResponse = _controller.Post(item);

            Assert.Equal(3, _multiples.GetAllItems().Count());
        }
Пример #4
0
        public void MultiplesPromotionController_AddItem_DuplicateItemReturnsBadRequest()
        {
            var dupItem     = new MultiplesPromotion("Apple", 2, 3.00m);
            var badResponse = _controller.Post(dupItem);

            Assert.IsType <BadRequestObjectResult>(badResponse);
        }
Пример #5
0
        public void MultiplePromotionTests_TestProperties()
        {
            MultiplesPromotion promotion = new MultiplesPromotion("Soup", 3, 5.00m);

            Assert.Equal("Soup", promotion.Name);
            Assert.Equal(3, promotion.Quantity);
            Assert.Equal(5.00m, promotion.Price);
        }
Пример #6
0
        public void MultiplesPromotionController_AddItem_ItemReturnsResponseCreatedItem()
        {
            var item            = new MultiplesPromotion("Bread", 2, 3.00m);
            var createdResponse = _controller.Post(item) as CreatedAtActionResult;
            var itemResult      = createdResponse.Value as MultiplesPromotion;

            Assert.Equal(item.Name, itemResult.Name);
        }
Пример #7
0
        public void MultiplesPromotionController_AddItem_ItemReturnsBadRequest()
        {
            var badItem = new MultiplesPromotion("", 3, 7.50m);

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

            Assert.IsType <BadRequestObjectResult>(badResponse);
        }
Пример #8
0
        public ActionResult <MultiplesPromotion> Get(string itemName)
        {
            MultiplesPromotion item = _multiples.GetItem(itemName);

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

            return(Ok(item));
        }
Пример #9
0
        public ActionResult Remove(string itemName)
        {
            MultiplesPromotion existingItem = _multiples.GetItem(itemName);

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

            _multiples.Remove(existingItem);
            return(Ok());
        }
Пример #10
0
        public ActionResult Post([FromBody] MultiplesPromotion value)
        {
            //Validate item
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //Check for duplicate item
            if (_multiples.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."));
            }

            MultiplesPromotion item = _multiples.Add(value);

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