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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #10
0
        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);
        }