public async Task TestCreateCommentWithValidComment()
        {
            await this.AddTwoUsersAsync();

            await this.AddTwoPostsAsync();

            var       fileName      = "Img";
            IFormFile file          = new FormFile(new MemoryStream(Encoding.UTF8.GetBytes("This is a dummy file")), 0, 0, fileName, "dummy.png");
            var       commentDesc   = "TestCommentDescription";
            var       commentPostId = "postId1";

            var comentModel = new AddCommentsModel()
            {
                Description = commentDesc,
                PostId      = commentPostId,
                File        = file,
            };

            await this.commentsService.CreateCommentAsync(comentModel, "userId1");

            var actualComment = await this.dbContext.Comments
                                .Where(x => x.PostId == commentPostId && x.Description == commentDesc).FirstOrDefaultAsync();

            var expectedCommentDesc   = commentDesc;
            var expectedCommentPostId = commentPostId;
            var expectedCommentUrl    = fileName;

            Assert.IsTrue(expectedCommentUrl == actualComment.ImgUrl &&
                          expectedCommentDesc == actualComment.Description &&
                          expectedCommentPostId == actualComment.PostId);
        }
        public async Task TestCreateCommentWithNullFile()
        {
            await this.AddTwoUsersAsync();

            await this.AddTwoPostsAsync();

            var commentDesc   = "TestCommentDescription";
            var commentPostId = "postId1";

            var comentModel = new AddCommentsModel()
            {
                Description = commentDesc,
                PostId      = commentPostId,
                File        = null,
            };

            await this.commentsService.CreateCommentAsync(comentModel, "userId1");

            var actualComment = await this.dbContext.Comments
                                .Where(x => x.PostId == commentPostId && x.Description == commentDesc).FirstOrDefaultAsync();

            var    expectedCommentDesc   = commentDesc;
            var    expectedCommentPostId = commentPostId;
            string expectedCommentUrl    = null;

            Assert.IsTrue(expectedCommentUrl == actualComment.ImgUrl &&
                          expectedCommentDesc == actualComment.Description &&
                          expectedCommentPostId == actualComment.PostId);
        }
Exemple #3
0
        public static bool AddComment(AddCommentsModel model)
        {
            model.Name = "User";
            var json     = JsonConvert.SerializeObject(model);
            var data     = new StringContent("=" + json, Encoding.UTF8, "application/x-www-form-urlencoded");
            var response = client.PostAsync($"api/Comments/", data).Result;

            if (response.IsSuccessStatusCode)
            {
                var content = response.Content.ReadAsStringAsync().Result;
                return(true);
            }
            ;
            return(false);
        }
Exemple #4
0
        public async Task <ActionResult <ResponseAddComment> > Post([FromForm] AddCommentsModel data)
        {
            if (this.User.Identity.IsAuthenticated)
            {
                var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
                await this.commentsService.CreateCommentAsync(data, userId);

                return(new ResponseAddComment()
                {
                    Status = "Created"
                });
            }

            return(this.Unauthorized());
        }
Exemple #5
0
        public async Task CreateCommentAsync(AddCommentsModel input, string userId)
        {
            string url = null;

            if (input.File != null)
            {
                url = await this.cloudinaryService.SaveCloudinaryAsync(input.File);
            }

            var comment = new Comment()
            {
                Description       = input.Description,
                ApplicationUserId = userId,
                PostId            = input.PostId,
                ImgUrl            = url,
            };

            await this.commentsRepository.AddAsync(comment);

            await this.commentsRepository.SaveChangesAsync();
        }