public async void Post_CreateMaintenance_ShouldWork() { var expected = new MaintenanceDTO(); var createMaintenanceRequest = new CreateMaintenanceRequest() { Date = DateTime.Now, Service = "service" }; var mediatorMock = new Mock <IMediator>(); var logger = new Mock <ILogger <CarController> >(); mediatorMock.Setup(t => t.Send(It.IsAny <CreateMaintenanceCommand>(), It.IsAny <CancellationToken>())) .Returns(() => Task.FromResult(expected)); var controller = new CarController(mediatorMock.Object, logger.Object); ValidateModelState(createMaintenanceRequest, controller); var response = await controller.Post(Guid.NewGuid(), createMaintenanceRequest); var okResult = Assert.IsType <CreatedResult>(response); var maintenance = Assert.IsAssignableFrom <MaintenanceDTO>(okResult.Value); Assert.Equal(expected, maintenance); }
public async void Post_CreateMaintenance_ShouldReturnBadRequest() { var createMaintenanceRequest = new CreateMaintenanceRequest(); var mediatorMock = new Mock <IMediator>(); var logger = new Mock <ILogger <CarController> >(); var controller = new CarController(mediatorMock.Object, logger.Object); ValidateModelState(createMaintenanceRequest, controller); var response = await controller.Post(Guid.NewGuid(), createMaintenanceRequest); var badRequestResult = Assert.IsType <BadRequestObjectResult>(response); var errors = Assert.IsAssignableFrom <SerializableError>(badRequestResult.Value); Assert.True(errors.ContainsKey(nameof(createMaintenanceRequest.Service))); }
public async Task <IActionResult> Post([FromRoute] Guid CarId, [FromBody] CreateMaintenanceRequest request) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } MaintenanceDTO maintenance = await _mediator.Send(new CreateMaintenanceCommand(CarId, request.Date, request.Service, request.Description)); return(Created(string.Empty, maintenance)); } catch (OException ex) { return(BadRequest(ex.Message)); } }