Example #1
0
        public async Task AddWish_Wish_ReturnWishId()
        {
            //Arrange
            DbContext.Wishlists.Add(new WishList()
            {
                UserId        = 1,
                Name          = "Wishlist 1",
                DirectoryName = "avavreghv",
            });

            DbContext.SaveChanges();

            var addWish = new AddWishDTO()
            {
                WishlistId = 1,
                Name       = "Wish 1",
                Price      = 88.99,
                URL        = "www.wish1.com"
            };

            //Act
            var operationResult = await wishService.AddAsync(addWish, UserId);

            //Assert
            Assert.IsTrue(operationResult.Status == OperationStatus.SUCCESS);
            Assert.AreEqual(1, operationResult.Data.Id);
        }
Example #2
0
        public async Task AddWish_WishlistDoesNotExist_ReturnNull()
        {
            //Arrange
            var addWish = new AddWishDTO()
            {
                WishlistId = 12345,
                Name       = "Wish 1",
                Price      = 88.99,
                URL        = "www.wish1.com"
            };

            //Act
            var operationResult = await wishService.AddAsync(addWish, UserId);

            //Assert
            Assert.IsNull(operationResult.Data);
        }
Example #3
0
        /// <summary>
        /// Adds new wish for given wishlistId
        /// </summary>
        /// <param name="addWishDTO">Wish to be added</param>
        /// <param name="userId">Id of user</param>
        /// <returns>Id of added wish or null if wishlist not found</returns>
        public async Task <OperationResult <WishDTO> > AddAsync(AddWishDTO addWishDTO, string userId)
        {
            Guard.IsNullEmptyOrWhiteSpace(userId, nameof(userId));
            Guard.IsNull(addWishDTO, nameof(addWishDTO));

            var wishlist = await dbContext.Wishlists
                           .Include(wl => wl.User)
                           .Include(wl => wl.Wishes)
                           .FirstOrDefaultAsync(wl => wl.Id == addWishDTO.WishlistId && wl.User.Auth0Id == userId);

            if (wishlist == null)
            {
                return new OperationResult <WishDTO>()
                       {
                           Data    = null,
                           Status  = OperationStatus.FAIL,
                           Message = MessageHelper.CreateEntityNotFoundMessage(nameof(WishList), addWishDTO.WishlistId)
                       }
            }
            ;

            var wish = new Wish()
            {
                Name  = addWishDTO.Name,
                Price = addWishDTO.Price,
                URL   = addWishDTO.URL
            };

            wishlist.Wishes.Add(wish);
            await dbContext.SaveChangesAsync();

            return(new OperationResult <WishDTO>()
            {
                Status = OperationStatus.SUCCESS,
                Data = new WishDTO()
                {
                    Id = wish.Id,
                    Name = wish.Name,
                    Link = wish.URL,
                    Price = wish.Price
                }
            });
        }
Example #4
0
        public async Task AddWish_EmptyWishWithWishlistId_ReturnWishId()
        {
            //Arrange
            DbContext.Wishlists.Add(new WishList()
            {
                UserId        = 1,
                Name          = "Wishlist 1",
                DirectoryName = "avavreghv",
            });

            DbContext.SaveChanges();

            var addWish = new AddWishDTO()
            {
                WishlistId = 1,
            };

            //Act
            var operationResult = await wishService.AddAsync(addWish, UserId);

            //Assert
            Assert.AreEqual(1, operationResult.Data.Id);
        }
Example #5
0
        public async Task <IActionResult> Post([FromBody] AddWishDTO wishDTO)
        {
            var operationResult = await wishService.AddAsync(wishDTO, this.HttpContext.User.SubjectId());

            return(operationResult.Status == OperationStatus.SUCCESS? CreatedAtAction(nameof(Get), new { id = operationResult.Data.Id }, operationResult) : NotFound(operationResult));
        }