public virtual IEnumerable<StripeInvoiceLineItem> ListLineItems(string invoiceId, StripeInvoiceListLineItemsOptions listOptions = null, StripeRequestOptions requestOptions = null)
 {
     return Mapper<StripeInvoiceLineItem>.MapCollectionFromJson(
         Requestor.GetString(this.ApplyAllParameters(listOptions, $"{Urls.Invoices}/{invoiceId}/lines", true),
         SetupRequestOptions(requestOptions))
     );
 }
        public StripeInvoiceServiceTest()
        {
            this.service = new StripeInvoiceService();

            this.createOptions = new StripeInvoiceCreateOptions()
            {
                TaxPercent = 12.5m,
            };

            this.updateOptions = new StripeInvoiceUpdateOptions()
            {
                Metadata = new Dictionary <string, string>()
                {
                    { "key", "value" },
                },
            };

            this.listOptions = new StripeInvoiceListOptions()
            {
                Limit = 1,
            };

            this.listLineItemsOptions = new StripeInvoiceListLineItemsOptions()
            {
                Limit = 1,
            };

            this.upcomingOptions = new StripeUpcomingInvoiceOptions()
            {
                SubscriptionId = "sub_123",
            };
        }
 public virtual async Task<IEnumerable<StripeInvoiceLineItem>> ListLineItemsAsync(string invoiceId, StripeInvoiceListLineItemsOptions listOptions = null, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
 {
     return Mapper<StripeInvoiceLineItem>.MapCollectionFromJson(
         await Requestor.GetStringAsync(
             this.ApplyAllParameters(listOptions, $"{Urls.Invoices}/{invoiceId}/lines", true),
             SetupRequestOptions(requestOptions), 
             cancellationToken)
     );
 }