예제 #1
0
        public void _Call_CategoryService_GetCategoryByName(
            string userId,
            string title,
            string text,
            string coverPicture,
            CategoryEnum categoryEnum)
        {
            //Arrange
            var mockedPostRepository   = new Mock <IRepository <Post> >();
            var mockedUserService      = new Mock <IUserService>();
            var mockedUnitOfWork       = new Mock <IUnitOfWork>();
            var mockedPostFactory      = new Mock <IPostFactory>();
            var mockedCategoryService  = new Mock <ICategoryService>();
            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var postService = new PostsService(
                mockedPostRepository.Object,
                mockedUserService.Object,
                mockedUnitOfWork.Object,
                mockedPostFactory.Object,
                mockedCategoryService.Object,
                mockedDateTimeProvider.Object);

            //Act
            postService.CreatePost(userId, title, text, coverPicture, categoryEnum);

            //Assert
            mockedCategoryService.Verify(c => c.GetCategoryByName(categoryEnum), Times.Once);
        }
예제 #2
0
            public async Task WhenCreatePostGetsCalled()
            {
                Setup();

                _post = new Fixture().Create <Post>();

                await PostsService.CreatePost(_post);
            }
예제 #3
0
        public void _Call_ReturnCorrect_Post_Commit(
            string userId,
            string title,
            string text,
            string coverPicture,
            CategoryEnum categoryEnum)
        {
            //Arrange
            var user     = new User();
            var date     = new DateTime();
            var category = new Category();
            var Post     = new Post();

            var mockedPostRepository = new Mock <IRepository <Post> >();

            var mockedUserService = new Mock <IUserService>();

            mockedUserService.Setup(m => m.GetUserById(It.IsAny <string>())).Returns(user);

            var mockedUnitOfWork = new Mock <IUnitOfWork>();

            var mockedPostFactory = new Mock <IPostFactory>();

            mockedPostFactory.Setup(f => f.CreatePost(title, text, coverPicture, user, category, date)).Returns(Post);

            var mockedCategoryService = new Mock <ICategoryService>();

            mockedCategoryService.Setup(c => c.GetCategoryByName(categoryEnum)).Returns(category);

            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            mockedDateTimeProvider.Setup(d => d.GetCurrentDate()).Returns(date);

            var postService = new PostsService(
                mockedPostRepository.Object,
                mockedUserService.Object,
                mockedUnitOfWork.Object,
                mockedPostFactory.Object,
                mockedCategoryService.Object,
                mockedDateTimeProvider.Object);

            //Act
            var postRes = postService.CreatePost(userId, title, text, coverPicture, categoryEnum);

            //Assert
            Assert.AreSame(Post, postRes);
        }
예제 #4
0
        public async Task GetPostsShouldReturnPosts()
        {
            var dbOptions = new DbContextOptionsBuilder <ApplicationDbContext>()
                            .UseInMemoryDatabase("test");
            var context = new ApplicationDbContext(dbOptions.Options);

            var postsService = new PostsService(context, null);

            var school = new School();
            var user   = new ApplicationUser();
            await context.Schools.AddAsync(school);

            await context.Users.AddAsync(user);

            await postsService.CreatePost("Content", user, school.Id);

            var posts = postsService.GetPosts(school.Id, 0);

            Assert.That(posts.Count > 0);
        }
예제 #5
0
        public IActionResult Create([FromServices] PostsService postsService)
        {
            var createPostRequest = JsonConvert.DeserializeObject <CreatePostRequest>(Request.Form["post"].ToString());

            foreach (var formFile in Request.Form.Files.GetFiles("photo"))
            {
                using (var stream = formFile.OpenReadStream())
                {
                    using (var ms = new MemoryStream())
                    {
                        stream.CopyTo(ms);
                        createPostRequest.Photos.Add(ms.ToArray());
                    }
                }
            }

            var createPostResponse = postsService.CreatePost(createPostRequest);

            return(Json(createPostResponse));
        }
예제 #6
0
        public async Task <ActionResult> Create(string boton, PostEditorViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var createPostResult = await _postsServicio.CreatePost(viewModel.ToPostEditorDto());

            if (createPostResult.IsFailure)
            {
                ModelState.AddModelError("*", createPostResult.Error);
            }

            if (boton.ToLower().Contains(@"exit"))
            {
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Edit", new { viewModel.Id }));
        }
예제 #7
0
        public async Task GetMaxPagesShouldReturnCorrectNumber()
        {
            var dbOptions = new DbContextOptionsBuilder <ApplicationDbContext>()
                            .UseInMemoryDatabase("test");
            var context = new ApplicationDbContext(dbOptions.Options);

            var postsService = new PostsService(context, null);

            var school = new School();
            var user   = new ApplicationUser();
            await context.Schools.AddAsync(school);

            await context.Users.AddAsync(user);

            await context.SaveChangesAsync();

            await postsService.CreatePost("Content", user, school.Id);

            var maxPages = postsService.GetMaxPages(school.Id);

            Assert.That(maxPages == 1);
        }
예제 #8
0
        public async Task GetPostShouldReturnTheCorrectPost()
        {
            var dbOptions = new DbContextOptionsBuilder <ApplicationDbContext>()
                            .UseInMemoryDatabase("test");
            var context = new ApplicationDbContext(dbOptions.Options);

            var postsService = new PostsService(context, null);

            var school = new School();
            var user   = new ApplicationUser();
            await context.Schools.AddAsync(school);

            await context.Users.AddAsync(user);

            await context.SaveChangesAsync();

            await postsService.CreatePost("Content", user, school.Id);

            var post  = context.Posts.FirstOrDefault();
            var posts = postsService.GetPost(post.Id);

            Assert.That(posts != null);
        }
예제 #9
0
        public async Task <IActionResult> Index(PostViewModel model)
        {
            if (model == null || string.IsNullOrWhiteSpace(model.Message))
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (string.IsNullOrWhiteSpace(model.Tags))
            {
                model.Tags = string.Empty;
            }

            var post = new PostDto
            {
                PostId  = Guid.NewGuid().ToString(),
                Message = model.Message,
                Tags    = model.Tags.Split(' ', StringSplitOptions.RemoveEmptyEntries).ToList(),
                UserId  = string.Empty
            };

            await _postsService.CreatePost(post, Request.Cookies["token"]);

            return(RedirectToAction("Index", "Home"));
        }