public async void PostCourier_SaveAsyncFailed() { var saveAsyncResponse = new CourierResponse("Failed to save courier"); _mockedCourierService.Setup(x => x.SaveAsync(It.IsAny <Courier>())).ReturnsAsync(saveAsyncResponse); var controllerResponse = await _couriersController.PostAsync(new SaveCourierResource { Name = "FedEx" }); var badRequestResult = Expect.IsType <BadRequestObjectResult>(controllerResponse); var errorReturned = Expect.IsType <string>(badRequestResult.Value); Expect.Equal("Failed to save courier", errorReturned); }
public async void DeleteCourier_DeleteAsyncFailed() { var deleteAsyncResponse = new CourierResponse("Failed to delete courier"); _mockedCourierService.Setup(x => x.DeleteAsync(1)).ReturnsAsync(deleteAsyncResponse); var controllerResponse = await _couriersController.DeleteAsync(1); var badRequestResult = Expect.IsType <BadRequestObjectResult>(controllerResponse); var errorReturned = Expect.IsType <string>(badRequestResult.Value); Expect.Equal("Failed to delete courier", errorReturned); }
public async Task add_weight_quota_to_dimension() { A_COURIER_QUERY = CourierQueryBuilder.ACourierQuery() .WithLParcel() .Build(); StringContent stringContent = SerializeCourierQuery(); CourierResponse courierResponse = await DeserializeCourierResponse(stringContent); Assert.Equal(27, courierResponse.TotalPrice); Assert.Equal(27, courierResponse.Parcels[0].Cost); }
public async void DeleteCourier() { var deletedCourier = GetFakeCouriers().First(); var deleteAsyncResponse = new CourierResponse(deletedCourier); _mockedCourierService.Setup(x => x.DeleteAsync(1)).ReturnsAsync(deleteAsyncResponse); var controllerResponse = await _couriersController.DeleteAsync(1); var okResult = Expect.IsType <OkObjectResult>(controllerResponse); var courierReturned = Expect.IsType <CourierResource>(okResult.Value); var expectedReturnValue = _mapper.Map <Courier, CourierResource>(deletedCourier); Expect.DeepEqual(expectedReturnValue, courierReturned); }
public async Task return_speedy_delivery_option() { A_COURIER_QUERY = CourierQueryBuilder.ACourierQuery() .WithLParcel() .WithXLParcel() .Build(); StringContent stringContent = SerializeCourierQuery(); CourierResponse courierResponse = await DeserializeCourierResponse(stringContent); Assert.Equal(72, courierResponse.TotalPrice); Assert.Equal(144, courierResponse.SpeedyShipping.TotalPrice); }
public async Task return_collection_of_items_with_prices_for_each() { A_COURIER_QUERY = CourierQueryBuilder.ACourierQuery() .WithLParcel() .WithXLParcel() .Build(); StringContent stringContent = SerializeCourierQuery(); CourierResponse courierResponse = await DeserializeCourierResponse(stringContent); Assert.Equal(27, courierResponse.Parcels[0].Cost); Assert.Equal(45, courierResponse.Parcels[1].Cost); }
public async Task return_total_price_for_parcels( decimal expectedTotalPrice, params string[] dimensions) { A_COURIER_QUERY = CourierQueryBuilder.ACourierQuery() .WithParcelsOfDimension(dimensions) .Build(); StringContent stringContent = SerializeCourierQuery(); CourierResponse courierResponse = await DeserializeCourierResponse(stringContent); Assert.Equal(expectedTotalPrice, courierResponse.TotalPrice); }
public async void PutCourier() { var updatedCourier = GetFakeCouriers().First(); updatedCourier.Name = "Updated name"; var updateAsyncResponse = new CourierResponse(updatedCourier); _mockedCourierService.Setup(x => x.UpdateAsync(1, It.IsAny <Courier>())).ReturnsAsync(updateAsyncResponse); var controllerResponse = await _couriersController.PutAsync(1, new SaveCourierResource { Name = "Updated name" }); var okResult = Expect.IsType <OkObjectResult>(controllerResponse); var courierReturned = Expect.IsType <CourierResource>(okResult.Value); var expectedReturnValue = _mapper.Map <Courier, CourierResource>(updatedCourier); Expect.DeepEqual(expectedReturnValue, courierReturned); }
public async void PostCourier() { var saveAsyncResponse = new CourierResponse( new Courier { Id = 3, Name = "FedEx", BussinessId = "3456-78", APIKey = "fedex-api-key" } ); _mockedCourierService.Setup(x => x.SaveAsync(It.IsAny <Courier>())).ReturnsAsync(saveAsyncResponse); var controllerResponse = await _couriersController.PostAsync(new SaveCourierResource { Name = "FedEx" }); var okResult = Expect.IsType <OkObjectResult>(controllerResponse); var courierReturned = Expect.IsType <CourierResource>(okResult.Value); var expectedReturnValue = _mapper.Map <Courier, CourierResource>(saveAsyncResponse.Courier); Expect.DeepEqual(expectedReturnValue, courierReturned); }
public CourierResponse Handle(CourierQuery query) { var courierResponse = new CourierResponse(); decimal courierTotalPrice = 0; foreach (var parcel in query.Parcels) { decimal parcelCost = DimensionCosts.GetCostFromDimension(parcel.Dimension); decimal weightedCost = WeightCosts.GetCostFromDimension(parcel.Dimension); courierTotalPrice += parcelCost + weightedCost; courierResponse.Parcels.Add(new Parcel { Cost = parcelCost + weightedCost }); } courierResponse.TotalPrice = courierTotalPrice; courierResponse.SpeedyShipping = new SpeedyShipping { TotalPrice = courierTotalPrice * 2 }; return(courierResponse); }