public void Null_response_means_address_is_invalid()
        {
            var stub = new Mock <ILocationsApiGateway>();

            stub.Setup(x => x.GetCoordinatesByAddress(It.IsAny <string>()))
            .Returns((LocationsClientResponse)null);
            var api = new LocationsApi(stub.Object);

            Result <Coordinates> result = api.GetCoordinatesByAddress("Address");

            result.IsSuccess.Should().BeFalse();
            result.Error.Should().Be("No latitude / longitude available for the address 'Address'");
        }
예제 #2
0
        public Envelope NewShipping(string address)
        {
            Result <Coordinates> result = _locationsApi.GetCoordinatesByAddress(address);

            if (result.IsFailure)
            {
                return(Envelope.Error(result.Error));
            }

            Coordinates coordinates = result.Value;

            var delivery = new Delivery(address, coordinates);

            SaveDelivery(delivery);

            _messageBus.SendNewShippingMessage(delivery.Id, coordinates);

            return(Envelope.Ok(delivery.Id));
        }