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)); }
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); }
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); }