public async Task CreateTodoList_NotSuccessful_StatusCodeInternalServerError() { var factory = new ControllerFactory(); var mockHandler = Mock.Of <IHandler>(); Mock.Get(mockHandler).Setup( x => x.HandleCommand <CreateTodoListCommand, CreateTodoListCommandResult>( It.IsAny <CreateTodoListCommand>())) .ReturnsAsync(new CreateTodoListCommandResult { Successfull = false, }); var toCreate = new ViewModel.TodoList.CreateView(); factory.Services.Replace(ServiceDescriptor.Scoped(factory => mockHandler)); var controller = factory.Create <TodoController>(); var result = await controller.CreateTodoList(toCreate); result.Should().BeOfType <StatusCodeResult>(); ((StatusCodeResult)result).StatusCode.Should() .Be(StatusCodes.Status500InternalServerError); }
public async Task CreateTodoList_ValidRequest_OkObjectResult() { var factory = new ControllerFactory(); var mockHandler = Mock.Of <IHandler>(); Mock.Get(mockHandler).Setup( x => x.HandleCommand <CreateTodoListCommand, CreateTodoListCommandResult>( It.IsAny <CreateTodoListCommand>())) .ReturnsAsync(new CreateTodoListCommandResult { Successfull = true, Data = new ViewModel.TodoList.CreatedView() }); var toCreate = new ViewModel.TodoList.CreateView(); factory.Services.Replace(ServiceDescriptor.Scoped(factory => mockHandler)); var controller = factory.Create <TodoController>(); var result = await controller.CreateTodoList(toCreate); result.Should().BeOfType <OkObjectResult>(); ((OkObjectResult)result).Value.Should() .BeOfType <ViewModel.TodoList.CreatedView>(); }
public async Task CreateTodoList_HandlerThrows_Rethrows() { var factory = new ControllerFactory(); var mockHandler = Mock.Of <IHandler>(); Mock.Get(mockHandler).Setup( x => x.HandleCommand <CreateTodoListCommand, CreateTodoListCommandResult>( It.IsAny <CreateTodoListCommand>())) .ThrowsAsync(new Exception()); var toCreate = new ViewModel.TodoList.CreateView(); factory.Services.Replace(ServiceDescriptor.Scoped(factory => mockHandler)); var controller = factory.Create <TodoController>(); Func <Task> act = async() => await controller.CreateTodoList(toCreate); await act.Should().ThrowAsync <Exception>(); }