Exemplo n.º 1
0
        public async Task Create_WithValidCourse_ReturnsProperView()
        {
            //Arrange
            var thread = new Thread()
            {
                Name        = "Random name",
                Description = "Random description"
            };

            var model = new ThreadCreationBindingModel()
            {
                Name        = thread.Name,
                Description = thread.Description
            };

            var mockRepository = new Mock <IAdminThreadsService>();

            mockRepository
            .Setup(repo => repo.AddThreadAsync(model))
            .ReturnsAsync(thread);

            var controller = new ThreadsController(mockRepository.Object);

            //Act
            var result = await controller.Create(model);

            //Assert
            Assert.IsInstanceOfType(result, typeof(RedirectToActionResult));
        }
        public async Task <Models.Thread> AddThreadAsync(ThreadCreationBindingModel model)
        {
            Validator.EnsureNotNull(model, string.Format(ErrorMessages.NoValue, WebConstants.Thread));
            Validator.EnsureStringNotNullOrEmpty(model.Name, string.Format(ErrorMessages.NoName, WebConstants.Thread));
            Validator.EnsureStringNotNullOrEmpty(model.Description, string.Format(ErrorMessages.NoDescription, WebConstants.Thread));

            var thread = this.Mapper.Map <Models.Thread>(model);

            await this.Context.Threads.AddAsync(thread);

            this.Context.SaveChanges();

            return(thread);
        }
        public async Task AddCourse_WithMissingDescription_ShouldThrowException()
        {
            //Arrange
            ThreadCreationBindingModel threadModel = new ThreadCreationBindingModel()
            {
                Name        = "Random name",
                Description = null
            };

            //Act
            Func <Task> addThread = () => this.service.AddThreadAsync(threadModel);

            //Assert
            var exception = await Assert.ThrowsExceptionAsync <ArgumentException>(addThread);

            Assert.AreEqual(exception.Message, string.Format(ErrorMessages.NoDescription, WebConstants.Thread));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Create(ThreadCreationBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var thread = await this.threadsService.AddThreadAsync(model);

            if (this.TempData != null)
            {
                this.TempData.Put("__Message", new MessageModel()
                {
                    Type    = MessageType.Success,
                    Message = "Thread created successfully"
                });
            }

            return(RedirectToAction("Index", "Home"));
        }
        public async Task AddThread_WithProperData_ShouldAddCorrectly()
        {
            //Arrange
            var name        = "New thread name";
            var description = "New thread description";

            var threadModel = new ThreadCreationBindingModel()
            {
                Name        = name,
                Description = description
            };

            //Act
            await this.service.AddThreadAsync(threadModel);

            //Assert
            Assert.AreEqual(1, this.context.Threads.Count());
            var course = this.context.Threads.First();

            Assert.AreEqual(course.Name, name);
            Assert.AreEqual(course.Description, description);
        }
Exemplo n.º 6
0
        public void Create_WithValidCourse_ShouldCallService()
        {
            //Arrange
            var serviceCalled = false;
            var model         = new ThreadCreationBindingModel()
            {
                Name        = "Random name",
                Description = "Random description"
            };

            var mockRepository = new Mock <IAdminThreadsService>();

            mockRepository
            .Setup(repo => repo.AddThreadAsync(model))
            .Callback(() => serviceCalled = true);

            var controller = new ThreadsController(mockRepository.Object);

            //Act
            var result = controller.Create(model);

            //Assert
            Assert.IsTrue(serviceCalled);
        }