public async Task ensureAddProductCategoryReturnsBadRequestIfCategoryDoesNotHaveName()
        {
            AddProductCategoryModelView addCategoryMV = new AddProductCategoryModelView();

            var response = await client.PostAsJsonAsync(baseUrl, addCategoryMV);

            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public async Task ensureAddProductCategoryReturnsBadRequestIfDTOIsNull()
        {
            AddProductCategoryModelView addCategoryMV = null;

            var response = await client.PostAsJsonAsync(baseUrl, addCategoryMV);

            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public async Task <GetProductCategoryModelView> ensureAddProductCategoryReturnsCreatedIfCategoryWasAddedSuccessfully()
        {
            AddProductCategoryModelView addCategoryMV = new AddProductCategoryModelView()
            {
                name = "Drawers" + Guid.NewGuid().ToString("n")
            };

            var response = await client.PostAsJsonAsync(baseUrl, addCategoryMV);

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            return(JsonConvert.DeserializeObject <GetProductCategoryModelView>(await response.Content.ReadAsStringAsync()));
        }
        public async Task ensureGetProductCategoryByNameReturnsOkIfCategoryExists()
        {
            string categoryName = "Shelves" + Guid.NewGuid().ToString("n");
            AddProductCategoryModelView addCategoryMV = new AddProductCategoryModelView()
            {
                name = categoryName
            };

            var response = await client.PostAsJsonAsync(baseUrl, addCategoryMV);

            response = await client.GetAsync(string.Format("{0}?name={1}", baseUrl, categoryName));

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }
        /// <summary>
        /// Adds a new ProductCategory to the repository.
        /// </summary>
        /// <param name="modelView">ModelView containing ProductCategory information.</param>
        /// <returns>Returns the added ProductCategory's ModelView.</returns>
        public GetProductCategoryModelView addProductCategory(AddProductCategoryModelView modelView)
        {
            ProductCategoryRepository repository = PersistenceContext.repositories().createProductCategoryRepository();

            ProductCategory category = new ProductCategory(modelView.name);

            category = repository.save(category);

            //category was not able to be added (probably due to a violation of business identifiers)
            if (category == null)
            {
                throw new ArgumentException(ERROR_UNABLE_TO_ADD_CATEGORY);
            }

            return(ProductCategoryModelViewService.fromEntity(category));
        }
Beispiel #6
0
        public ActionResult addSubProductCategory(long parentId, [FromBody] AddProductCategoryModelView modelView)
        {
            if (modelView == null)
            {
                return(BadRequest(new { error = ERROR_EMPTY_BODY }));
            }

            try
            {
                GetProductCategoryModelView createdCategory = new core.application
                                                              .ProductCategoryController().addSubProductCategory(parentId, modelView);

                return(CreatedAtRoute("GetCategory", new { id = createdCategory.id }, createdCategory));
            }
            catch (ArgumentException e)
            {
                return(BadRequest(new { error = e.Message }));
            }
        }
        public async Task ensureAddProductCategoryReturnsCreatedCategoryDTOInBody()
        {
            string categoryName = "Drawers" + Guid.NewGuid().ToString("n");

            AddProductCategoryModelView addCategoryMV = new AddProductCategoryModelView()
            {
                name = categoryName
            };

            var response = await client.PostAsJsonAsync(baseUrl, addCategoryMV);

            GetProductCategoryModelView actual = await response.Content.ReadAsAsync <GetProductCategoryModelView>();

            GetProductCategoryModelView expected = new GetProductCategoryModelView()
            {
                name = categoryName
            };

            Assert.Equal(expected.name, actual.name);
        }