public static async Task UpdateAsync_OrderIsNull_ReturnsNotFound( OrderDescriptionModel model, OrderDescriptionController controller) { var response = await controller.UpdateAsync(null, model); response.Should().BeOfType <NotFoundResult>(); }
public static void Validate_DescriptionIsValid_DoesNotHaveError( OrderDescriptionModelValidator validator) { var model = new OrderDescriptionModel { Description = new string('A', 100) }; var result = validator.TestValidate(model); result.ShouldNotHaveValidationErrorFor(m => m.Description); }
public static void Validate_DescriptionIsTooLong_HasError( OrderDescriptionModelValidator validator) { var model = new OrderDescriptionModel { Description = new string('A', 101) }; var result = validator.TestValidate(model); result .ShouldHaveValidationErrorFor(m => m.Description) .WithErrorMessage($"{nameof(OrderDescriptionModel.Description)}TooLong"); }
public static void Validate_DescriptionIsEmpty_HasError( string description, OrderDescriptionModelValidator validator) { var model = new OrderDescriptionModel { Description = description }; var result = validator.TestValidate(model); result .ShouldHaveValidationErrorFor(m => m.Description) .WithErrorMessage($"{nameof(OrderDescriptionModel.Description)}Required"); }
public async Task <ActionResult> UpdateAsync([FromRoute] Order order, OrderDescriptionModel model) { if (model is null) { throw new ArgumentNullException(nameof(model)); } if (order is null) { return(NotFound()); } await orderDescriptionService.SetOrderDescription(order, model.Description); return(NoContent()); }
public static async Task UpdateAsync_SuccessfulUpdate_ReturnsNoContentResult( [Frozen] Mock <IOrderDescriptionService> service, Order order, OrderDescriptionModel model, OrderDescriptionController controller) { service.Setup(o => o.SetOrderDescription(order, model.Description)).Callback(() => { order.Description = model.Description; }); var result = await controller.UpdateAsync(order, model); service.Verify(o => o.SetOrderDescription(order, model.Description)); result.Should().BeOfType <NoContentResult>(); }
public static async Task UpdateAsync_UpdatesDescription( [Frozen] Mock <IOrderDescriptionService> service, Order order, OrderDescriptionModel model, OrderDescriptionController controller) { order.Description.Should().NotBe(model.Description); service.Setup(o => o.SetOrderDescription(order, model.Description)).Callback(() => { order.Description = model.Description; }); await controller.UpdateAsync(order, model); service.Verify(o => o.SetOrderDescription(order, model.Description)); order.Description.Should().Be(model.Description); }
public static async Task GetAsync_OrderIdExists_ReturnsTheOrdersDescription( [Frozen] Mock <IOrderDescriptionService> service, [Frozen] CallOffId callOffId, Order order, OrderDescriptionController controller) { service.Setup(o => o.GetOrderDescription(callOffId)).ReturnsAsync(order.Description); var expected = new OrderDescriptionModel { Description = order.Description }; var actual = await controller.GetAsync(callOffId); service.Verify(o => o.GetOrderDescription(callOffId)); actual.Value.Should().BeEquivalentTo(expected); }
public async Task <ActionResult> GetAsync([FromRoute][Required] string orderId) { var order = await _orderRepository.GetOrderByIdAsync(orderId); if (order is null) { return(NotFound()); } var primaryOrganisationId = User.GetPrimaryOrganisationId(); if (primaryOrganisationId != order.OrganisationId) { return(Forbid()); } var descriptionModel = new OrderDescriptionModel() { Description = order.Description.Value }; return(Ok(descriptionModel)); }
public async Task <ActionResult> UpdateAsync([FromRoute][Required] string orderId, [FromBody][Required] OrderDescriptionModel model) { if (model is null) { throw new ArgumentNullException(nameof(model)); } var order = await _orderRepository.GetOrderByIdAsync(orderId); if (order is null) { return(NotFound()); } var primaryOrganisationId = User.GetPrimaryOrganisationId(); if (primaryOrganisationId != order.OrganisationId) { return(Forbid()); } var isValid = OrderDescription.Create(model.Description); if (!isValid.IsSuccess) { return(BadRequest(new ErrorsModel(isValid.Errors.Select(x => new ErrorModel(x.Id, x.Field))))); } order.SetDescription(isValid.Value); var name = User.Identity.Name; order.SetLastUpdatedBy(User.GetUserId(), name); await _orderRepository.UpdateOrderAsync(order); return(NoContent()); }