diff --git a/appveyor.yml b/appveyor.yml index db16a6e34a..23867bf617 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,7 +4,7 @@ image: Visual Studio 2017 environment: COVERALLS_REPO_TOKEN: secure: T0PmP8uyzCseacBCDRBlti2y9Tz5DL6fknea0MKWvbPYrzADmLY2/5kOTfYIsPUk - # If you bump this, don't forget to bump `MinimumMockVersion` in `BaseStripeTest.cs` as well. + # If you bump this, don't forget to bump `MinimumMockVersion` in `StripeMockFixture.cs` as well. STRIPE_MOCK_VERSION: 0.39.0 deploy: diff --git a/src/StripeTests/BaseStripeTest.cs b/src/StripeTests/BaseStripeTest.cs index 56c9b85307..a36864fda5 100644 --- a/src/StripeTests/BaseStripeTest.cs +++ b/src/StripeTests/BaseStripeTest.cs @@ -1,106 +1,44 @@ namespace StripeTests { - using System; using System.IO; - using System.Linq; - using System.Net; using System.Net.Http; using System.Reflection; using System.Text; - using System.Threading; - - using Moq; - using Moq.Protected; - using Stripe; + using Xunit; + [Collection("stripe-mock tests")] public class BaseStripeTest { - /// Minimum required version of stripe-mock - /// - /// If you bump this, don't forget to bump `STRIPE_MOCK_VERSION` in appveyor.yml as well. - /// - private const string MockMinimumVersion = "0.39.0"; - - private static Mock mockHandler; - - private static string port; - - // Lazy initializer to ensure that initialization is run only once even when running tests - // in parallel. - private static Lazy initializer = new Lazy(InitStripeMock); - public BaseStripeTest() + : this(null, null) { - // This triggers the lazy initialization. We don't actually care about the value of - // initialized (it will be null anyway), but simply writing `initializer.Value` is not - // a valid statement in C#. - var initialized = initializer.Value; + } - // Reset the mock before each test - mockHandler.Invocations.Clear(); + public BaseStripeTest(StripeMockFixture stripeMockFixture) + : this(stripeMockFixture, null) + { } - /// - /// Gets fixture data from stripe-mock for a resource expected to be at the given API path. - /// stripe-mock ignores whether IDs are actually valid, so it's only important to make sure - /// that the route exists, rather than the actual resource. It's common to use a symbolic - /// ID stand-in like ch_123 - /// - /// API path to use to get a fixture for stripe-mock - /// Fixture data encoded as JSON - protected static string GetFixture(string path) + public BaseStripeTest(MockHttpClientFixture mockHttpClientFixture) + : this(null, mockHttpClientFixture) { - return GetFixture(path, null); } - /// - /// Gets fixture data with expansions specified. Expansions are specified the same way as - /// they are in the normal API like customer or data.customer. - /// Use the special * character to specify that all fields should be - /// expanded. - /// - /// API path to use to get a fixture for stripe-mock - /// Set of expansions that should be applied - /// Fixture data encoded as JSON - protected static string GetFixture(string path, string[] expansions) + public BaseStripeTest(StripeMockFixture stripeMockFixture, MockHttpClientFixture mockHttpClientFixture) { - string url = $"http://localhost:{port}{path}"; + this.StripeMockFixture = stripeMockFixture; + this.MockHttpClientFixture = mockHttpClientFixture; - if (expansions != null) + if (this.MockHttpClientFixture != null) { - string query = string.Join("&", expansions.Select(x => $"expand[]={x}").ToArray()); - url += $"?{query}"; + // Reset the mock before each test + this.MockHttpClientFixture.Reset(); } + } - using (HttpClient client = new HttpClient()) - { - client.DefaultRequestHeaders.Authorization - = new System.Net.Http.Headers.AuthenticationHeaderValue( - "Bearer", - "sk_test_123"); - - HttpResponseMessage response; - - try - { - response = client.GetAsync(url).Result; - } - catch (Exception) - { - throw new Exception( - $"Couldn't reach stripe-mock at `localhost:{port}`. " - + "Is it running? Please see README for setup instructions."); - } + protected MockHttpClientFixture MockHttpClientFixture { get; } - if (response.StatusCode != HttpStatusCode.OK) - { - throw new Exception( - $"stripe-mock returned status code: {response.StatusCode}."); - } - - return response.Content.ReadAsStringAsync().Result; - } - } + protected StripeMockFixture StripeMockFixture { get; } /// /// Gets a resource file and returns its contents in a string. @@ -110,83 +48,51 @@ protected static string GetFixture(string path, string[] expansions) protected static string GetResourceAsString(string path) { var fullpath = "StripeTests.Resources." + path; - var json = new StreamReader( + var contents = new StreamReader( typeof(BaseStripeTest).GetTypeInfo().Assembly.GetManifestResourceStream(fullpath), Encoding.UTF8).ReadToEnd(); - return json; - } - - protected void AssertRequest(HttpMethod method, string path) - { - mockHandler.Protected().Verify( - "SendAsync", - Times.Once(), - ItExpr.Is(m => - m.Method == method && - m.RequestUri.AbsolutePath == path), - ItExpr.IsAny()); + return contents; } /// - /// Checks that stripe-mock is running and that it's a recent enough version. + /// Asserts that a single HTTP request was made with the specified method and path. /// - private static object InitStripeMock() + protected void AssertRequest(HttpMethod method, string path) { - port = Environment.GetEnvironmentVariable("STRIPE_MOCK_PORT") ?? "12111"; - string url = $"http://localhost:{port}"; - - using (HttpClient client = new HttpClient()) + if (this.MockHttpClientFixture == null) { - HttpResponseMessage response; - - try - { - response = client.GetAsync(url).Result; - } - catch (Exception) - { - throw new Exception( - $"Couldn't reach stripe-mock at `localhost:{port}`. " - + "Is it running? Please see README for setup instructions."); - } - - string version = response.Headers.GetValues("Stripe-Mock-Version").FirstOrDefault(); - - if (!version.Equals("master") && - (CompareVersions(version, MockMinimumVersion) > 0)) - { - throw new Exception( - $"Your version of stripe-mock ({version}) is too old. The minimum " - + $"version to run this test suite is {MockMinimumVersion}. Please see its " - + "repository for upgrade instructions."); - } + throw new StripeTestException( + "AssertRequest called from a test class that doesn't have access to " + + "MockHttpClientFixture. Make sure that the constructor for " + + $"{this.GetType().Name} receives MockHttpClientFixture and calls the " + + "base constructor."); } - StripeConfiguration.SetApiBase($"http://localhost:{port}/v1"); - StripeConfiguration.SetFilesBase($"http://localhost:{port}/v1"); - StripeConfiguration.SetApiKey("sk_test_123"); - - mockHandler = new Mock - { - CallBase = true - }; - StripeConfiguration.HttpMessageHandler = mockHandler.Object; - - return null; + this.MockHttpClientFixture.AssertRequest(method, path); } /// - /// Compares two version strings. + /// Gets fixture data with expansions specified. Expansions are specified the same way as + /// they are in the normal API like customer or data.customer. + /// Use the special * character to specify that all fields should be + /// expanded. /// - /// A version string (e.g. "1.2.3"). - /// Another version string. - /// -1 if a > b, 1 if a < b, 0 if a == b - private static int CompareVersions(string a, string b) + /// API path to use to get a fixture for stripe-mock + /// Set of expansions that should be applied + /// Fixture data encoded as JSON + protected string GetFixture(string path, string[] expansions = null) { - var version1 = new Version(a); - var version2 = new Version(b); - return version2.CompareTo(version1); + if (this.StripeMockFixture == null) + { + throw new StripeTestException( + "GetFixture called from a test class that doesn't have access to " + + "StripeMockFixture. Make sure that the constructor for " + + $"{this.GetType().Name} receives StripeMockFixture and calls the " + + "base constructor."); + } + + return this.StripeMockFixture.GetFixture(path, expansions); } } } diff --git a/src/StripeTests/Entities/Accounts/AccountTest.cs b/src/StripeTests/Entities/Accounts/AccountTest.cs index e52cec07d6..0ea6fa0241 100644 --- a/src/StripeTests/Entities/Accounts/AccountTest.cs +++ b/src/StripeTests/Entities/Accounts/AccountTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class AccountTest : BaseStripeTest { + public AccountTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/accounts/acct_123"); + string json = this.GetFixture("/v1/accounts/acct_123"); var account = JsonConvert.DeserializeObject(json); Assert.NotNull(account); Assert.IsType(account); @@ -25,7 +30,7 @@ public void DeserializeWithExpansions() "business_logo", }; - string json = GetFixture("/v1/accounts/acct_123", expansions); + string json = this.GetFixture("/v1/accounts/acct_123", expansions); var account = JsonConvert.DeserializeObject(json); Assert.NotNull(account); diff --git a/src/StripeTests/Entities/ApplePayDomains/ApplePayDomainTest.cs b/src/StripeTests/Entities/ApplePayDomains/ApplePayDomainTest.cs index 580b553786..94ca1d3392 100644 --- a/src/StripeTests/Entities/ApplePayDomains/ApplePayDomainTest.cs +++ b/src/StripeTests/Entities/ApplePayDomains/ApplePayDomainTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class ApplePayDomainTest : BaseStripeTest { + public ApplePayDomainTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/apple_pay/domains/apwc_123"); + string json = this.GetFixture("/v1/apple_pay/domains/apwc_123"); var domain = JsonConvert.DeserializeObject(json); Assert.NotNull(domain); Assert.IsType(domain); diff --git a/src/StripeTests/Entities/ApplicationFeeRefunds/ApplicationFeeRefundTest.cs b/src/StripeTests/Entities/ApplicationFeeRefunds/ApplicationFeeRefundTest.cs index e2405fe9ab..8bc81d639b 100644 --- a/src/StripeTests/Entities/ApplicationFeeRefunds/ApplicationFeeRefundTest.cs +++ b/src/StripeTests/Entities/ApplicationFeeRefunds/ApplicationFeeRefundTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class ApplicationFeeRefundTest : BaseStripeTest { + public ApplicationFeeRefundTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/application_fees/fee_123/refunds/fr_123"); + string json = this.GetFixture("/v1/application_fees/fee_123/refunds/fr_123"); var applicationFeeRefund = JsonConvert.DeserializeObject(json); Assert.NotNull(applicationFeeRefund); Assert.IsType(applicationFeeRefund); diff --git a/src/StripeTests/Entities/ApplicationFees/ApplicationFeeTest.cs b/src/StripeTests/Entities/ApplicationFees/ApplicationFeeTest.cs index 6b1f0696d6..c3a373e88f 100644 --- a/src/StripeTests/Entities/ApplicationFees/ApplicationFeeTest.cs +++ b/src/StripeTests/Entities/ApplicationFees/ApplicationFeeTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class ApplicationFeeTest : BaseStripeTest { + public ApplicationFeeTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/application_fees/fee_123"); + string json = this.GetFixture("/v1/application_fees/fee_123"); var applicationFee = JsonConvert.DeserializeObject(json); Assert.NotNull(applicationFee); Assert.IsType(applicationFee); @@ -29,7 +34,7 @@ public void DeserializeWithExpansions() "originating_transaction", }; - string json = GetFixture("/v1/application_fees/fee_123", expansions); + string json = this.GetFixture("/v1/application_fees/fee_123", expansions); var applicationFee = JsonConvert.DeserializeObject(json); Assert.NotNull(applicationFee); Assert.IsType(applicationFee); diff --git a/src/StripeTests/Entities/Balance/BalanceTest.cs b/src/StripeTests/Entities/Balance/BalanceTest.cs index a251532e54..f1d7bcd144 100644 --- a/src/StripeTests/Entities/Balance/BalanceTest.cs +++ b/src/StripeTests/Entities/Balance/BalanceTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class BalanceTest : BaseStripeTest { + public BalanceTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/balance"); + string json = this.GetFixture("/v1/balance"); var balance = JsonConvert.DeserializeObject(json); Assert.NotNull(balance); Assert.IsType(balance); diff --git a/src/StripeTests/Entities/BalanceTransactions/BalanceTransactionTest.cs b/src/StripeTests/Entities/BalanceTransactions/BalanceTransactionTest.cs index 188c96d090..a11a9d2e2b 100644 --- a/src/StripeTests/Entities/BalanceTransactions/BalanceTransactionTest.cs +++ b/src/StripeTests/Entities/BalanceTransactions/BalanceTransactionTest.cs @@ -7,10 +7,15 @@ namespace StripeTests public class BalanceTransactionTest : BaseStripeTest { + public BalanceTransactionTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/balance/history/txn_123"); + string json = this.GetFixture("/v1/balance/history/txn_123"); var balanceTransaction = JsonConvert.DeserializeObject(json); Assert.NotNull(balanceTransaction); Assert.IsType(balanceTransaction); diff --git a/src/StripeTests/Entities/BankAccounts/BankAccountTest.cs b/src/StripeTests/Entities/BankAccounts/BankAccountTest.cs index 259fcf23cb..cf6d3cab57 100644 --- a/src/StripeTests/Entities/BankAccounts/BankAccountTest.cs +++ b/src/StripeTests/Entities/BankAccounts/BankAccountTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class BankAccountTest : BaseStripeTest { + public BankAccountTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void DeserializeForAccount() { - string json = GetFixture("/v1/accounts/acct_123/external_accounts/ba_123"); + string json = this.GetFixture("/v1/accounts/acct_123/external_accounts/ba_123"); var bankAccount = JsonConvert.DeserializeObject(json); Assert.NotNull(bankAccount); Assert.IsType(bankAccount); @@ -20,7 +25,7 @@ public void DeserializeForAccount() [Fact] public void DeserializeForCustomer() { - string json = GetFixture("/v1/customers/cus_123/bank_accounts/ba_123"); + string json = this.GetFixture("/v1/customers/cus_123/bank_accounts/ba_123"); var bankAccount = JsonConvert.DeserializeObject(json); Assert.NotNull(bankAccount); Assert.IsType(bankAccount); @@ -36,7 +41,7 @@ public void DeserializeWithExpansionsForCustomer() "customer", }; - string json = GetFixture("/v1/customers/cus_123/bank_accounts/ba_123", expansions); + string json = this.GetFixture("/v1/customers/cus_123/bank_accounts/ba_123", expansions); var bankAccount = JsonConvert.DeserializeObject(json); Assert.NotNull(bankAccount); Assert.IsType(bankAccount); diff --git a/src/StripeTests/Entities/Cards/CardTest.cs b/src/StripeTests/Entities/Cards/CardTest.cs index 2243d3d80c..8ee034a956 100644 --- a/src/StripeTests/Entities/Cards/CardTest.cs +++ b/src/StripeTests/Entities/Cards/CardTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class CardTest : BaseStripeTest { + public CardTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/customers/cus_123/cards/card_123"); + string json = this.GetFixture("/v1/customers/cus_123/cards/card_123"); var card = JsonConvert.DeserializeObject(json); Assert.NotNull(card); Assert.IsType(card); @@ -26,7 +31,7 @@ public void DeserializeWithExpansions() "recipient", }; - string json = GetFixture("/v1/customers/cus_123/cards/card_123", expansions); + string json = this.GetFixture("/v1/customers/cus_123/cards/card_123", expansions); var card = JsonConvert.DeserializeObject(json); Assert.NotNull(card); Assert.IsType(card); diff --git a/src/StripeTests/Entities/Charges/ChargeTest.cs b/src/StripeTests/Entities/Charges/ChargeTest.cs index f3f736cd92..d319c779ef 100644 --- a/src/StripeTests/Entities/Charges/ChargeTest.cs +++ b/src/StripeTests/Entities/Charges/ChargeTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class ChargeTest : BaseStripeTest { + public ChargeTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/charges/ch_123"); + string json = this.GetFixture("/v1/charges/ch_123"); var charge = JsonConvert.DeserializeObject(json); Assert.NotNull(charge); Assert.IsType(charge); @@ -36,7 +41,7 @@ public void DeserializeWithExpansions() "transfer", }; - string json = GetFixture("/v1/charges/ch_123", expansions); + string json = this.GetFixture("/v1/charges/ch_123", expansions); var charge = JsonConvert.DeserializeObject(json); Assert.NotNull(charge); Assert.IsType(charge); diff --git a/src/StripeTests/Entities/CountrySpecs/CountrySpecTest.cs b/src/StripeTests/Entities/CountrySpecs/CountrySpecTest.cs index ad6709df26..e4ab7292b6 100644 --- a/src/StripeTests/Entities/CountrySpecs/CountrySpecTest.cs +++ b/src/StripeTests/Entities/CountrySpecs/CountrySpecTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class CountrySpecTest : BaseStripeTest { + public CountrySpecTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/country_specs/US"); + string json = this.GetFixture("/v1/country_specs/US"); var countrySpec = JsonConvert.DeserializeObject(json); Assert.NotNull(countrySpec); Assert.IsType(countrySpec); diff --git a/src/StripeTests/Entities/Coupons/CouponTest.cs b/src/StripeTests/Entities/Coupons/CouponTest.cs index e975f55655..d60eb4cd25 100644 --- a/src/StripeTests/Entities/Coupons/CouponTest.cs +++ b/src/StripeTests/Entities/Coupons/CouponTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class CouponTest : BaseStripeTest { + public CouponTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/coupons/co_123"); + string json = this.GetFixture("/v1/coupons/co_123"); var coupon = JsonConvert.DeserializeObject(json); Assert.NotNull(coupon); Assert.IsType(coupon); diff --git a/src/StripeTests/Entities/Customers/CustomerTest.cs b/src/StripeTests/Entities/Customers/CustomerTest.cs index 29399acc26..ecbc3c1811 100644 --- a/src/StripeTests/Entities/Customers/CustomerTest.cs +++ b/src/StripeTests/Entities/Customers/CustomerTest.cs @@ -7,10 +7,15 @@ namespace StripeTests public class CustomerTest : BaseStripeTest { + public CustomerTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/customers/cus_123"); + string json = this.GetFixture("/v1/customers/cus_123"); var customer = JsonConvert.DeserializeObject(json); Assert.NotNull(customer); Assert.IsType(customer); diff --git a/src/StripeTests/Entities/Discounts/DiscountTest.cs b/src/StripeTests/Entities/Discounts/DiscountTest.cs index e200a7965b..dbc04c35f4 100644 --- a/src/StripeTests/Entities/Discounts/DiscountTest.cs +++ b/src/StripeTests/Entities/Discounts/DiscountTest.cs @@ -6,6 +6,11 @@ namespace StripeTests public class DiscountTest : BaseStripeTest { + public DiscountTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Services/Discounts/DisputeTest.cs b/src/StripeTests/Entities/Disputes/DisputeTest.cs similarity index 78% rename from src/StripeTests/Services/Discounts/DisputeTest.cs rename to src/StripeTests/Entities/Disputes/DisputeTest.cs index 106e4e96e2..20dda8610c 100644 --- a/src/StripeTests/Services/Discounts/DisputeTest.cs +++ b/src/StripeTests/Entities/Disputes/DisputeTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class DisputeTest : BaseStripeTest { + public DisputeTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/disputes/dp_123"); + string json = this.GetFixture("/v1/disputes/dp_123"); var dispute = JsonConvert.DeserializeObject(json); Assert.NotNull(dispute); Assert.IsType(dispute); @@ -25,7 +30,7 @@ public void DeserializeWithExpansions() "charge", }; - string json = GetFixture("/v1/disputes/dp_123", expansions); + string json = this.GetFixture("/v1/disputes/dp_123", expansions); var dispute = JsonConvert.DeserializeObject(json); Assert.NotNull(dispute); Assert.IsType(dispute); diff --git a/src/StripeTests/Entities/EphemeralKeys/EphemeralKeyTest.cs b/src/StripeTests/Entities/EphemeralKeys/EphemeralKeyTest.cs index 5c89239ab2..6710ace0f3 100644 --- a/src/StripeTests/Entities/EphemeralKeys/EphemeralKeyTest.cs +++ b/src/StripeTests/Entities/EphemeralKeys/EphemeralKeyTest.cs @@ -6,6 +6,11 @@ namespace StripeTests public class EphemeralKeyTest : BaseStripeTest { + public EphemeralKeyTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Entities/Events/EventTest.cs b/src/StripeTests/Entities/Events/EventTest.cs index a30dd9548c..3c9e0ffad1 100644 --- a/src/StripeTests/Entities/Events/EventTest.cs +++ b/src/StripeTests/Entities/Events/EventTest.cs @@ -6,6 +6,11 @@ namespace StripeTests public class EventTest : BaseStripeTest { + public EventTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Entities/ExchangeRates/ExchangeRateTest.cs b/src/StripeTests/Entities/ExchangeRates/ExchangeRateTest.cs index 3ae3456261..0099ebd5d1 100644 --- a/src/StripeTests/Entities/ExchangeRates/ExchangeRateTest.cs +++ b/src/StripeTests/Entities/ExchangeRates/ExchangeRateTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class ExchangeRateTest : BaseStripeTest { + public ExchangeRateTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/exchange_rates/usd"); + string json = this.GetFixture("/v1/exchange_rates/usd"); var exchangeRate = JsonConvert.DeserializeObject(json); Assert.NotNull(exchangeRate); Assert.IsType(exchangeRate); diff --git a/src/StripeTests/Entities/ExternalAccounts/ExternalAccountTest.cs b/src/StripeTests/Entities/ExternalAccounts/ExternalAccountTest.cs index 347e53359f..441c0b8c57 100644 --- a/src/StripeTests/Entities/ExternalAccounts/ExternalAccountTest.cs +++ b/src/StripeTests/Entities/ExternalAccounts/ExternalAccountTest.cs @@ -5,10 +5,15 @@ namespace StripeTests public class ExternalAccountTest : BaseStripeTest { + public ExternalAccountTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/accounts/acct_123/external_accounts/ba_123"); + string json = this.GetFixture("/v1/accounts/acct_123/external_accounts/ba_123"); var externalAccount = Mapper.MapFromJson(json); Assert.NotNull(externalAccount); Assert.IsType(externalAccount); @@ -23,7 +28,7 @@ public void DeserializeWithExpansions() "account", }; - string json = GetFixture("/v1/accounts/acct_123/external_accounts/ba_123", expansions); + string json = this.GetFixture("/v1/accounts/acct_123/external_accounts/ba_123", expansions); var externalAccount = Mapper.MapFromJson(json); Assert.NotNull(externalAccount); Assert.IsType(externalAccount); diff --git a/src/StripeTests/Entities/FileLinks/FileLinkTest.cs b/src/StripeTests/Entities/FileLinks/FileLinkTest.cs index df40f43f82..d4665c72fc 100644 --- a/src/StripeTests/Entities/FileLinks/FileLinkTest.cs +++ b/src/StripeTests/Entities/FileLinks/FileLinkTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class FileLinkTest : BaseStripeTest { + public FileLinkTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/file_links/link_123"); + string json = this.GetFixture("/v1/file_links/link_123"); var fileLink = JsonConvert.DeserializeObject(json); Assert.NotNull(fileLink); Assert.IsType(fileLink); @@ -25,7 +30,7 @@ public void DeserializeWithExpansions() "file", }; - string json = GetFixture("/v1/file_links/link_123", expansions); + string json = this.GetFixture("/v1/file_links/link_123", expansions); var fileLink = JsonConvert.DeserializeObject(json); Assert.NotNull(fileLink); Assert.IsType(fileLink); diff --git a/src/StripeTests/Entities/Files/FileTest.cs b/src/StripeTests/Entities/Files/FileTest.cs index ea30ce4885..39557705a0 100644 --- a/src/StripeTests/Entities/Files/FileTest.cs +++ b/src/StripeTests/Entities/Files/FileTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class FileTest : BaseStripeTest { + public FileTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/files/file_123"); + string json = this.GetFixture("/v1/files/file_123"); var file = JsonConvert.DeserializeObject(json); Assert.NotNull(file); Assert.IsType(file); diff --git a/src/StripeTests/Entities/InvoiceItems/InvoiceItemTest.cs b/src/StripeTests/Entities/InvoiceItems/InvoiceItemTest.cs index 0a2c66e54c..3e8e6d0696 100644 --- a/src/StripeTests/Entities/InvoiceItems/InvoiceItemTest.cs +++ b/src/StripeTests/Entities/InvoiceItems/InvoiceItemTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class InvoiceItemTest : BaseStripeTest { + public InvoiceItemTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/invoiceitems/ii_123"); + string json = this.GetFixture("/v1/invoiceitems/ii_123"); var invoiceItem = JsonConvert.DeserializeObject(json); Assert.NotNull(invoiceItem); Assert.IsType(invoiceItem); @@ -27,7 +32,7 @@ public void DeserializeWithExpansions() "subscription", }; - string json = GetFixture("/v1/invoiceitems/ii_123", expansions); + string json = this.GetFixture("/v1/invoiceitems/ii_123", expansions); var invoiceItem = JsonConvert.DeserializeObject(json); Assert.NotNull(invoiceItem); Assert.IsType(invoiceItem); diff --git a/src/StripeTests/Entities/Invoices/InvoiceLineItemTest.cs b/src/StripeTests/Entities/Invoices/InvoiceLineItemTest.cs index eeec5519d7..d711a1f0ee 100644 --- a/src/StripeTests/Entities/Invoices/InvoiceLineItemTest.cs +++ b/src/StripeTests/Entities/Invoices/InvoiceLineItemTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class InvoiceLineItemTest : BaseStripeTest { + public InvoiceLineItemTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/invoices/in_123/lines"); + string json = this.GetFixture("/v1/invoices/in_123/lines"); var lineItems = JsonConvert.DeserializeObject>(json); Assert.NotNull(lineItems); diff --git a/src/StripeTests/Entities/Invoices/InvoiceTest.cs b/src/StripeTests/Entities/Invoices/InvoiceTest.cs index 724e271322..f33f3af7e2 100644 --- a/src/StripeTests/Entities/Invoices/InvoiceTest.cs +++ b/src/StripeTests/Entities/Invoices/InvoiceTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class InvoiceTest : BaseStripeTest { + public InvoiceTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/invoices/in_123"); + string json = this.GetFixture("/v1/invoices/in_123"); var invoice = JsonConvert.DeserializeObject(json); Assert.NotNull(invoice); Assert.IsType(invoice); @@ -27,7 +32,7 @@ public void DeserializeWithExpansions() "subscription", }; - string json = GetFixture("/v1/invoices/in_123", expansions); + string json = this.GetFixture("/v1/invoices/in_123", expansions); var invoice = JsonConvert.DeserializeObject(json); Assert.NotNull(invoice); Assert.IsType(invoice); diff --git a/src/StripeTests/Entities/Issuing/Authorizations/AuthorizationTest.cs b/src/StripeTests/Entities/Issuing/Authorizations/AuthorizationTest.cs index 568bcf0107..98a401e670 100644 --- a/src/StripeTests/Entities/Issuing/Authorizations/AuthorizationTest.cs +++ b/src/StripeTests/Entities/Issuing/Authorizations/AuthorizationTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Issuing public class AuthorizationTest : BaseStripeTest { + public AuthorizationTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/issuing/authorizations/iauth_123"); + string json = this.GetFixture("/v1/issuing/authorizations/iauth_123"); var authorization = JsonConvert.DeserializeObject(json); Assert.NotNull(authorization); Assert.IsType(authorization); @@ -28,7 +33,7 @@ public void DeserializeWithExpansions() "cardholder", }; - string json = GetFixture("/v1/issuing/authorizations/iauth_123", expansions); + string json = this.GetFixture("/v1/issuing/authorizations/iauth_123", expansions); var authorization = JsonConvert.DeserializeObject(json); Assert.NotNull(authorization); Assert.IsType(authorization); diff --git a/src/StripeTests/Entities/Issuing/Cardholders/CardholderTest.cs b/src/StripeTests/Entities/Issuing/Cardholders/CardholderTest.cs index 7ff020e3ff..79c55eeec9 100644 --- a/src/StripeTests/Entities/Issuing/Cardholders/CardholderTest.cs +++ b/src/StripeTests/Entities/Issuing/Cardholders/CardholderTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Issuing public class CardholderTest : BaseStripeTest { + public CardholderTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/issuing/cardholders/ich_123"); + string json = this.GetFixture("/v1/issuing/cardholders/ich_123"); var cardholder = JsonConvert.DeserializeObject(json); Assert.NotNull(cardholder); Assert.IsType(cardholder); diff --git a/src/StripeTests/Entities/Issuing/Cards/CardDetailsTest.cs b/src/StripeTests/Entities/Issuing/Cards/CardDetailsTest.cs index 48e353c1dc..2df6a0df4a 100644 --- a/src/StripeTests/Entities/Issuing/Cards/CardDetailsTest.cs +++ b/src/StripeTests/Entities/Issuing/Cards/CardDetailsTest.cs @@ -6,6 +6,11 @@ namespace StripeTests.Issuing public class CardDetailsTest : BaseStripeTest { + public CardDetailsTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Entities/Issuing/Cards/CardTest.cs b/src/StripeTests/Entities/Issuing/Cards/CardTest.cs index 86e3a0a42e..dd9432a772 100644 --- a/src/StripeTests/Entities/Issuing/Cards/CardTest.cs +++ b/src/StripeTests/Entities/Issuing/Cards/CardTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Issuing public class CardTest : BaseStripeTest { + public CardTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/issuing/cards/ic_123"); + string json = this.GetFixture("/v1/issuing/cards/ic_123"); var card = JsonConvert.DeserializeObject(json); Assert.NotNull(card); Assert.IsType(card); diff --git a/src/StripeTests/Entities/Issuing/Disputes/DisputeTest.cs b/src/StripeTests/Entities/Issuing/Disputes/DisputeTest.cs index 1f7901a3e0..12c0bbcd69 100644 --- a/src/StripeTests/Entities/Issuing/Disputes/DisputeTest.cs +++ b/src/StripeTests/Entities/Issuing/Disputes/DisputeTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Issuing public class DisputeTest : BaseStripeTest { + public DisputeTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/issuing/disputes/idp_123"); + string json = this.GetFixture("/v1/issuing/disputes/idp_123"); var dispute = JsonConvert.DeserializeObject(json); Assert.NotNull(dispute); Assert.IsType(dispute); diff --git a/src/StripeTests/Entities/Issuing/Transactions/TransactionTest.cs b/src/StripeTests/Entities/Issuing/Transactions/TransactionTest.cs index 5a48c1dd6c..e206347c00 100644 --- a/src/StripeTests/Entities/Issuing/Transactions/TransactionTest.cs +++ b/src/StripeTests/Entities/Issuing/Transactions/TransactionTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Issuing public class TransactionTest : BaseStripeTest { + public TransactionTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/issuing/transactions/ipi_123"); + string json = this.GetFixture("/v1/issuing/transactions/ipi_123"); var transaction = JsonConvert.DeserializeObject(json); Assert.NotNull(transaction); Assert.IsType(transaction); diff --git a/src/StripeTests/Entities/LoginLinks/LoginLinkTest.cs b/src/StripeTests/Entities/LoginLinks/LoginLinkTest.cs index 451dde174b..7de9f6ecef 100644 --- a/src/StripeTests/Entities/LoginLinks/LoginLinkTest.cs +++ b/src/StripeTests/Entities/LoginLinks/LoginLinkTest.cs @@ -6,6 +6,11 @@ namespace StripeTests public class LoginLinkTest : BaseStripeTest { + public LoginLinkTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Entities/Orders/OrderTest.cs b/src/StripeTests/Entities/Orders/OrderTest.cs index cf42da48db..f729bc7e55 100644 --- a/src/StripeTests/Entities/Orders/OrderTest.cs +++ b/src/StripeTests/Entities/Orders/OrderTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class OrderTest : BaseStripeTest { + public OrderTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/orders/or_123"); + string json = this.GetFixture("/v1/orders/or_123"); var order = JsonConvert.DeserializeObject(json); Assert.NotNull(order); Assert.IsType(order); @@ -26,7 +31,7 @@ public void DeserializeWithExpansions() "customer", }; - string json = GetFixture("/v1/orders/or_123", expansions); + string json = this.GetFixture("/v1/orders/or_123", expansions); var order = JsonConvert.DeserializeObject(json); Assert.NotNull(order); Assert.IsType(order); diff --git a/src/StripeTests/Entities/PaymentIntents/PaymentIntentTest.cs b/src/StripeTests/Entities/PaymentIntents/PaymentIntentTest.cs index aee6535eb2..788bfb96fc 100644 --- a/src/StripeTests/Entities/PaymentIntents/PaymentIntentTest.cs +++ b/src/StripeTests/Entities/PaymentIntents/PaymentIntentTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class PaymentIntentTest : BaseStripeTest { + public PaymentIntentTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/payment_intents/pi_123"); + string json = this.GetFixture("/v1/payment_intents/pi_123"); var intent = JsonConvert.DeserializeObject(json); Assert.NotNull(intent); Assert.IsType(intent); @@ -29,7 +34,7 @@ public void DeserializeWithExpansions() "transfer_data.destination", }; - string json = GetFixture("/v1/payment_intents/pi_123", expansions); + string json = this.GetFixture("/v1/payment_intents/pi_123", expansions); var intent = JsonConvert.DeserializeObject(json); Assert.NotNull(intent); Assert.IsType(intent); diff --git a/src/StripeTests/Entities/Payouts/PayoutTest.cs b/src/StripeTests/Entities/Payouts/PayoutTest.cs index 993728a901..eadc8a5ff0 100644 --- a/src/StripeTests/Entities/Payouts/PayoutTest.cs +++ b/src/StripeTests/Entities/Payouts/PayoutTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class PayoutTest : BaseStripeTest { + public PayoutTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/payouts/po_123"); + string json = this.GetFixture("/v1/payouts/po_123"); var payout = JsonConvert.DeserializeObject(json); Assert.NotNull(payout); Assert.IsType(payout); @@ -27,7 +32,7 @@ public void DeserializeWithExpansions() "failure_balance_transaction", }; - string json = GetFixture("/v1/payouts/po_123", expansions); + string json = this.GetFixture("/v1/payouts/po_123", expansions); var payout = JsonConvert.DeserializeObject(json); Assert.NotNull(payout); Assert.IsType(payout); diff --git a/src/StripeTests/Entities/Persons/PersonTest.cs b/src/StripeTests/Entities/Persons/PersonTest.cs index 14320773d3..92be69afc6 100644 --- a/src/StripeTests/Entities/Persons/PersonTest.cs +++ b/src/StripeTests/Entities/Persons/PersonTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class PersonTest : BaseStripeTest { + public PersonTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/accounts/acct_123/persons/person_123"); + string json = this.GetFixture("/v1/accounts/acct_123/persons/person_123"); var person = JsonConvert.DeserializeObject(json); Assert.NotNull(person); Assert.IsType(person); diff --git a/src/StripeTests/Entities/Plans/PlanTest.cs b/src/StripeTests/Entities/Plans/PlanTest.cs index 1492c2a491..812f8e54de 100644 --- a/src/StripeTests/Entities/Plans/PlanTest.cs +++ b/src/StripeTests/Entities/Plans/PlanTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class PlanTest : BaseStripeTest { + public PlanTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/plans/plan_123"); + string json = this.GetFixture("/v1/plans/plan_123"); var plan = JsonConvert.DeserializeObject(json); Assert.NotNull(plan); Assert.IsType(plan); @@ -25,7 +30,7 @@ public void DeserializeWithExpansions() "product", }; - string json = GetFixture("/v1/plans/plan_123", expansions); + string json = this.GetFixture("/v1/plans/plan_123", expansions); var plan = JsonConvert.DeserializeObject(json); Assert.NotNull(plan); Assert.IsType(plan); diff --git a/src/StripeTests/Entities/Products/ProductTest.cs b/src/StripeTests/Entities/Products/ProductTest.cs index 269ff42919..0c4c5d543e 100644 --- a/src/StripeTests/Entities/Products/ProductTest.cs +++ b/src/StripeTests/Entities/Products/ProductTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class ProductTest : BaseStripeTest { + public ProductTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/products/prod_123"); + string json = this.GetFixture("/v1/products/prod_123"); var product = JsonConvert.DeserializeObject(json); Assert.NotNull(product); Assert.IsType(product); diff --git a/src/StripeTests/Entities/Radar/ValueListItems/ValueListItemTest.cs b/src/StripeTests/Entities/Radar/ValueListItems/ValueListItemTest.cs index 7e20d91ad4..86e5b4a2f6 100644 --- a/src/StripeTests/Entities/Radar/ValueListItems/ValueListItemTest.cs +++ b/src/StripeTests/Entities/Radar/ValueListItems/ValueListItemTest.cs @@ -11,10 +11,15 @@ namespace StripeTests.Radar public class ValueListItemTest : BaseStripeTest { + public ValueListItemTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/radar/value_list_items/rsli_123"); + string json = this.GetFixture("/v1/radar/value_list_items/rsli_123"); var valueListItem = Mapper.MapFromJson(json); Assert.NotNull(valueListItem); Assert.IsType(valueListItem); diff --git a/src/StripeTests/Entities/Radar/ValueLists/ValueListTest.cs b/src/StripeTests/Entities/Radar/ValueLists/ValueListTest.cs index f940912fa4..a6701a0e9f 100644 --- a/src/StripeTests/Entities/Radar/ValueLists/ValueListTest.cs +++ b/src/StripeTests/Entities/Radar/ValueLists/ValueListTest.cs @@ -11,10 +11,15 @@ namespace StripeTests.Radar public class ValueListTest : BaseStripeTest { + public ValueListTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/radar/value_lists/rsl_123"); + string json = this.GetFixture("/v1/radar/value_lists/rsl_123"); var valueList = Mapper.MapFromJson(json); Assert.NotNull(valueList); Assert.IsType(valueList); diff --git a/src/StripeTests/Entities/Refunds/RefundTest.cs b/src/StripeTests/Entities/Refunds/RefundTest.cs index d1472d8ac1..c7d99f9d3d 100644 --- a/src/StripeTests/Entities/Refunds/RefundTest.cs +++ b/src/StripeTests/Entities/Refunds/RefundTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class RefundTest : BaseStripeTest { + public RefundTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/refunds/re_123"); + string json = this.GetFixture("/v1/refunds/re_123"); var refund = JsonConvert.DeserializeObject(json); Assert.NotNull(refund); Assert.IsType(refund); @@ -29,7 +34,7 @@ public void DeserializeWithExpansions() "transfer_reversal", }; - string json = GetFixture("/v1/refunds/re_123", expansions); + string json = this.GetFixture("/v1/refunds/re_123", expansions); var refund = JsonConvert.DeserializeObject(json); Assert.NotNull(refund); Assert.IsType(refund); diff --git a/src/StripeTests/Entities/Reporting/ReportRuns/ReportRunTest.cs b/src/StripeTests/Entities/Reporting/ReportRuns/ReportRunTest.cs index db39db25ff..466419cf24 100644 --- a/src/StripeTests/Entities/Reporting/ReportRuns/ReportRunTest.cs +++ b/src/StripeTests/Entities/Reporting/ReportRuns/ReportRunTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Reporting public class ReportRunTest : BaseStripeTest { + public ReportRunTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/reporting/report_runs/frr_123"); + string json = this.GetFixture("/v1/reporting/report_runs/frr_123"); var reportRun = JsonConvert.DeserializeObject(json); Assert.NotNull(reportRun); Assert.IsType(reportRun); diff --git a/src/StripeTests/Entities/Reporting/ReportTypes/ReportTypeTest.cs b/src/StripeTests/Entities/Reporting/ReportTypes/ReportTypeTest.cs index 7d98b3914d..2f62c84abe 100644 --- a/src/StripeTests/Entities/Reporting/ReportTypes/ReportTypeTest.cs +++ b/src/StripeTests/Entities/Reporting/ReportTypes/ReportTypeTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Reporting public class ReportTypeTest : BaseStripeTest { + public ReportTypeTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/reporting/report_types/activity.summary.1"); + string json = this.GetFixture("/v1/reporting/report_types/activity.summary.1"); var reportType = JsonConvert.DeserializeObject(json); Assert.NotNull(reportType); Assert.IsType(reportType); diff --git a/src/StripeTests/Entities/Reviews/ReviewTest.cs b/src/StripeTests/Entities/Reviews/ReviewTest.cs index 3ebb64ef91..c45b675202 100644 --- a/src/StripeTests/Entities/Reviews/ReviewTest.cs +++ b/src/StripeTests/Entities/Reviews/ReviewTest.cs @@ -5,10 +5,15 @@ namespace StripeTests public class ReviewTest : BaseStripeTest { + public ReviewTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/reviews/prv_123"); + string json = this.GetFixture("/v1/reviews/prv_123"); var review = Mapper.MapFromJson(json); Assert.NotNull(review); Assert.IsType(review); @@ -25,7 +30,7 @@ public void DeserializeWithExpansions() "payment_intent", }; - string json = GetFixture("/v1/reviews/prv_123", expansions); + string json = this.GetFixture("/v1/reviews/prv_123", expansions); var review = Mapper.MapFromJson(json); Assert.NotNull(review); Assert.IsType(review); diff --git a/src/StripeTests/Entities/Sigma/ScheduledQueryRunTest.cs b/src/StripeTests/Entities/Sigma/ScheduledQueryRunTest.cs index 5b7dc6958c..cdce2e5c2a 100644 --- a/src/StripeTests/Entities/Sigma/ScheduledQueryRunTest.cs +++ b/src/StripeTests/Entities/Sigma/ScheduledQueryRunTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Sigma public class ScheduledQueryRunTest : BaseStripeTest { + public ScheduledQueryRunTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/sigma/scheduled_query_runs/sqr_123"); + string json = this.GetFixture("/v1/sigma/scheduled_query_runs/sqr_123"); var run = JsonConvert.DeserializeObject(json); Assert.NotNull(run); Assert.IsType(run); diff --git a/src/StripeTests/Entities/Skus/SkuTest.cs b/src/StripeTests/Entities/Skus/SkuTest.cs index c47f3bcc9e..f694b3d81b 100644 --- a/src/StripeTests/Entities/Skus/SkuTest.cs +++ b/src/StripeTests/Entities/Skus/SkuTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class SkuTest : BaseStripeTest { + public SkuTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/skus/sku_123"); + string json = this.GetFixture("/v1/skus/sku_123"); var sku = JsonConvert.DeserializeObject(json); Assert.NotNull(sku); Assert.IsType(sku); @@ -25,7 +30,7 @@ public void DeserializeWithExpansions() "product", }; - string json = GetFixture("/v1/skus/sku_123", expansions); + string json = this.GetFixture("/v1/skus/sku_123", expansions); var sku = JsonConvert.DeserializeObject(json); Assert.NotNull(sku); Assert.IsType(sku); diff --git a/src/StripeTests/Entities/SourceMandateNotifications/SourceMandateNotificationTest.cs b/src/StripeTests/Entities/SourceMandateNotifications/SourceMandateNotificationTest.cs index e21e49d69e..02c854db92 100644 --- a/src/StripeTests/Entities/SourceMandateNotifications/SourceMandateNotificationTest.cs +++ b/src/StripeTests/Entities/SourceMandateNotifications/SourceMandateNotificationTest.cs @@ -6,6 +6,11 @@ namespace StripeTests public class SourceMandateNotificationTest : BaseStripeTest { + public SourceMandateNotificationTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Entities/Sources/SourceTest.cs b/src/StripeTests/Entities/Sources/SourceTest.cs index 664f859159..ae4c50a4de 100644 --- a/src/StripeTests/Entities/Sources/SourceTest.cs +++ b/src/StripeTests/Entities/Sources/SourceTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class SourceTest : BaseStripeTest { + public SourceTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/sources/src_123"); + string json = this.GetFixture("/v1/sources/src_123"); var source = JsonConvert.DeserializeObject(json); Assert.NotNull(source); Assert.IsType(source); diff --git a/src/StripeTests/Entities/SubscriptionItems/SubscriptionItemTest.cs b/src/StripeTests/Entities/SubscriptionItems/SubscriptionItemTest.cs index 761cc413bc..ebdc4e237b 100644 --- a/src/StripeTests/Entities/SubscriptionItems/SubscriptionItemTest.cs +++ b/src/StripeTests/Entities/SubscriptionItems/SubscriptionItemTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class SubscriptionItemTest : BaseStripeTest { + public SubscriptionItemTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/subscription_items/si_123"); + string json = this.GetFixture("/v1/subscription_items/si_123"); var subscriptionItem = JsonConvert.DeserializeObject(json); Assert.NotNull(subscriptionItem); Assert.IsType(subscriptionItem); diff --git a/src/StripeTests/Entities/Subscriptions/SubscriptionTest.cs b/src/StripeTests/Entities/Subscriptions/SubscriptionTest.cs index 1cf88995ab..a347d28893 100644 --- a/src/StripeTests/Entities/Subscriptions/SubscriptionTest.cs +++ b/src/StripeTests/Entities/Subscriptions/SubscriptionTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class SubscriptionTest : BaseStripeTest { + public SubscriptionTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/subscriptions/sub_123"); + string json = this.GetFixture("/v1/subscriptions/sub_123"); var subscription = JsonConvert.DeserializeObject(json); Assert.NotNull(subscription); Assert.IsType(subscription); @@ -25,7 +30,7 @@ public void DeserializeWithExpansions() "customer", }; - string json = GetFixture("/v1/subscriptions/sub_123", expansions); + string json = this.GetFixture("/v1/subscriptions/sub_123", expansions); var subscription = JsonConvert.DeserializeObject(json); Assert.NotNull(subscription); Assert.IsType(subscription); diff --git a/src/StripeTests/Entities/Terminal/ConnectionTokens/ConnectionTokenTest.cs b/src/StripeTests/Entities/Terminal/ConnectionTokens/ConnectionTokenTest.cs index 653c2f00e3..f1acfef278 100644 --- a/src/StripeTests/Entities/Terminal/ConnectionTokens/ConnectionTokenTest.cs +++ b/src/StripeTests/Entities/Terminal/ConnectionTokens/ConnectionTokenTest.cs @@ -6,6 +6,11 @@ namespace StripeTests.Terminal public class ConnectionTokenTest : BaseStripeTest { + public ConnectionTokenTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Entities/Terminal/Locations/LocationTest.cs b/src/StripeTests/Entities/Terminal/Locations/LocationTest.cs index a97e91d350..1261987a60 100644 --- a/src/StripeTests/Entities/Terminal/Locations/LocationTest.cs +++ b/src/StripeTests/Entities/Terminal/Locations/LocationTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Terminal public class LocationTest : BaseStripeTest { + public LocationTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/terminal/locations/loc_123"); + string json = this.GetFixture("/v1/terminal/locations/loc_123"); var location = JsonConvert.DeserializeObject(json); Assert.NotNull(location); Assert.IsType(location); diff --git a/src/StripeTests/Entities/Terminal/Readers/ReaderTest.cs b/src/StripeTests/Entities/Terminal/Readers/ReaderTest.cs index 10b206f75f..2e15d93f0b 100644 --- a/src/StripeTests/Entities/Terminal/Readers/ReaderTest.cs +++ b/src/StripeTests/Entities/Terminal/Readers/ReaderTest.cs @@ -6,10 +6,15 @@ namespace StripeTests.Terminal public class ReaderTest : BaseStripeTest { + public ReaderTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/terminal/readers/ds_123"); + string json = this.GetFixture("/v1/terminal/readers/ds_123"); var reader = JsonConvert.DeserializeObject(json); Assert.NotNull(reader); Assert.IsType(reader); diff --git a/src/StripeTests/Entities/ThreeDSecure/ThreeDSecureTest.cs b/src/StripeTests/Entities/ThreeDSecure/ThreeDSecureTest.cs index 58b5f9e50c..3457f95615 100644 --- a/src/StripeTests/Entities/ThreeDSecure/ThreeDSecureTest.cs +++ b/src/StripeTests/Entities/ThreeDSecure/ThreeDSecureTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class ThreeDSecureTest : BaseStripeTest { + public ThreeDSecureTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/3d_secure/tdsrc_123"); + string json = this.GetFixture("/v1/3d_secure/tdsrc_123"); var resource = JsonConvert.DeserializeObject(json); Assert.NotNull(resource); Assert.IsType(resource); diff --git a/src/StripeTests/Entities/Tokens/TokenTest.cs b/src/StripeTests/Entities/Tokens/TokenTest.cs index 1c3860d0b4..767aff853c 100644 --- a/src/StripeTests/Entities/Tokens/TokenTest.cs +++ b/src/StripeTests/Entities/Tokens/TokenTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class TokenTest : BaseStripeTest { + public TokenTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/tokens/tok_123"); + string json = this.GetFixture("/v1/tokens/tok_123"); var token = JsonConvert.DeserializeObject(json); Assert.NotNull(token); Assert.IsType(token); diff --git a/src/StripeTests/Entities/Topups/TopupTest.cs b/src/StripeTests/Entities/Topups/TopupTest.cs index 24cc14d385..6590cbb923 100644 --- a/src/StripeTests/Entities/Topups/TopupTest.cs +++ b/src/StripeTests/Entities/Topups/TopupTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class TopupTest : BaseStripeTest { + public TopupTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/topups/tu_123"); + string json = this.GetFixture("/v1/topups/tu_123"); var topup = JsonConvert.DeserializeObject(json); Assert.NotNull(topup); Assert.IsType(topup); @@ -26,7 +31,7 @@ public void DeserializeWithExpansions() "source", }; - string json = GetFixture("/v1/topups/tu_123", expansions); + string json = this.GetFixture("/v1/topups/tu_123", expansions); var topup = JsonConvert.DeserializeObject(json); Assert.NotNull(topup); Assert.IsType(topup); diff --git a/src/StripeTests/Entities/TransferReversals/TransferReversalTest.cs b/src/StripeTests/Entities/TransferReversals/TransferReversalTest.cs index 4818a01482..b0f4bd8831 100644 --- a/src/StripeTests/Entities/TransferReversals/TransferReversalTest.cs +++ b/src/StripeTests/Entities/TransferReversals/TransferReversalTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class TransferReversalTest : BaseStripeTest { + public TransferReversalTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/transfers/tr_123/reversals/trr_123"); + string json = this.GetFixture("/v1/transfers/tr_123/reversals/trr_123"); var transferReversal = JsonConvert.DeserializeObject(json); Assert.NotNull(transferReversal); Assert.IsType(transferReversal); @@ -26,7 +31,7 @@ public void DeserializeWithExpansions() "transfer", }; - string json = GetFixture("/v1/transfers/tr_123/reversals/trr_123", expansions); + string json = this.GetFixture("/v1/transfers/tr_123/reversals/trr_123", expansions); var transferReversal = JsonConvert.DeserializeObject(json); Assert.NotNull(transferReversal); Assert.IsType(transferReversal); diff --git a/src/StripeTests/Entities/Transfers/TransferTest.cs b/src/StripeTests/Entities/Transfers/TransferTest.cs index ef0b21cee2..2ba4ec4449 100644 --- a/src/StripeTests/Entities/Transfers/TransferTest.cs +++ b/src/StripeTests/Entities/Transfers/TransferTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class TransferTest : BaseStripeTest { + public TransferTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/transfers/tr_123"); + string json = this.GetFixture("/v1/transfers/tr_123"); var transfer = JsonConvert.DeserializeObject(json); Assert.NotNull(transfer); Assert.IsType(transfer); @@ -28,7 +33,7 @@ public void DeserializeWithExpansions() "source_transaction", }; - string json = GetFixture("/v1/transfers/tr_123", expansions); + string json = this.GetFixture("/v1/transfers/tr_123", expansions); var transfer = JsonConvert.DeserializeObject(json); Assert.NotNull(transfer); Assert.IsType(transfer); diff --git a/src/StripeTests/Entities/UsageRecordSummaries/UsageRecordSummaryTest.cs b/src/StripeTests/Entities/UsageRecordSummaries/UsageRecordSummaryTest.cs index d7bff0217f..ebeb0400a1 100644 --- a/src/StripeTests/Entities/UsageRecordSummaries/UsageRecordSummaryTest.cs +++ b/src/StripeTests/Entities/UsageRecordSummaries/UsageRecordSummaryTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class UsageRecordSummaryTest : BaseStripeTest { + public UsageRecordSummaryTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/subscription_items/si_123/usage_record_summaries"); + string json = this.GetFixture("/v1/subscription_items/si_123/usage_record_summaries"); var summaries = JsonConvert.DeserializeObject>(json); Assert.NotNull(summaries); diff --git a/src/StripeTests/Entities/UsageRecords/UsageRecordTest.cs b/src/StripeTests/Entities/UsageRecords/UsageRecordTest.cs index 16f8a5cb45..20e69f9023 100644 --- a/src/StripeTests/Entities/UsageRecords/UsageRecordTest.cs +++ b/src/StripeTests/Entities/UsageRecords/UsageRecordTest.cs @@ -6,6 +6,11 @@ namespace StripeTests public class UsageRecordTest : BaseStripeTest { + public UsageRecordTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { diff --git a/src/StripeTests/Entities/WebhookEndpoints/WebhookEndpointTest.cs b/src/StripeTests/Entities/WebhookEndpoints/WebhookEndpointTest.cs index 1387018dc8..15401c2e8a 100644 --- a/src/StripeTests/Entities/WebhookEndpoints/WebhookEndpointTest.cs +++ b/src/StripeTests/Entities/WebhookEndpoints/WebhookEndpointTest.cs @@ -6,10 +6,15 @@ namespace StripeTests public class WebhookEndpointTest : BaseStripeTest { + public WebhookEndpointTest(StripeMockFixture stripeMockFixture) + : base(stripeMockFixture) + { + } + [Fact] public void Deserialize() { - string json = GetFixture("/v1/webhook_endpoints/we_123"); + string json = this.GetFixture("/v1/webhook_endpoints/we_123"); var endpoint = JsonConvert.DeserializeObject(json); Assert.NotNull(endpoint); Assert.IsType(endpoint); diff --git a/src/StripeTests/Infrastructure/StripeExceptionTest.cs b/src/StripeTests/Infrastructure/StripeExceptionTest.cs index c25c62695a..8c6ce6aed5 100644 --- a/src/StripeTests/Infrastructure/StripeExceptionTest.cs +++ b/src/StripeTests/Infrastructure/StripeExceptionTest.cs @@ -1,19 +1,16 @@ namespace StripeTests { - using System.Linq; - using System.Net.Http; - using Newtonsoft.Json.Linq; + using System.Threading.Tasks; using Stripe; - using Stripe.Infrastructure; using Xunit; public class StripeExceptionTest : BaseStripeTest { [Fact] - public void SetsStripeResponse() + public async Task SetsStripeResponse() { - var exception = Assert.Throws(() => - new CouponService().Create(new CouponCreateOptions())); + var exception = await Assert.ThrowsAsync(async () => + await new CouponService().CreateAsync(new CouponCreateOptions())); Assert.NotNull(exception); Assert.NotNull(exception.StripeError); diff --git a/src/StripeTests/MockHttpClientFixture.cs b/src/StripeTests/MockHttpClientFixture.cs new file mode 100644 index 0000000000..37a6c04d39 --- /dev/null +++ b/src/StripeTests/MockHttpClientFixture.cs @@ -0,0 +1,54 @@ +namespace StripeTests +{ + using System; + using System.Net.Http; + using System.Threading; + using Moq; + using Moq.Protected; + using Stripe; + + public class MockHttpClientFixture : IDisposable + { + private Mock mockHandler; + + private HttpMessageHandler origHandler; + + public MockHttpClientFixture() + { + this.mockHandler = new Mock + { + CallBase = true + }; + + this.origHandler = StripeConfiguration.HttpMessageHandler; + StripeConfiguration.HttpMessageHandler = this.mockHandler.Object; + } + + public void Dispose() + { + StripeConfiguration.HttpMessageHandler = this.origHandler; + } + + /// + /// Resets all invocations recorded for the mock client. + /// + public void Reset() + { + this.mockHandler.Invocations.Clear(); + } + + /// + /// Asserts that a single HTTP request was made with the specified method and path. + /// + public void AssertRequest(HttpMethod method, string path) + { + this.mockHandler.Protected().Verify( + "SendAsync", + Times.Once(), + ItExpr.Is(m => + m.Method == method && + m.RequestUri.AbsolutePath == path), + ItExpr.IsAny()); + } + } +} diff --git a/src/StripeTests/Services/Accounts/AccountCreateOptionsTest.cs b/src/StripeTests/Services/Accounts/AccountCreateOptionsTest.cs index deaa64b5e9..3356d7b41f 100644 --- a/src/StripeTests/Services/Accounts/AccountCreateOptionsTest.cs +++ b/src/StripeTests/Services/Accounts/AccountCreateOptionsTest.cs @@ -12,7 +12,8 @@ public class AccountCreateOptionsTest : BaseStripeTest { private readonly AccountService service; - public AccountCreateOptionsTest() + public AccountCreateOptionsTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new AccountService(); } diff --git a/src/StripeTests/Services/Accounts/AccountServiceTest.cs b/src/StripeTests/Services/Accounts/AccountServiceTest.cs index 2d13910685..15e20e0cda 100644 --- a/src/StripeTests/Services/Accounts/AccountServiceTest.cs +++ b/src/StripeTests/Services/Accounts/AccountServiceTest.cs @@ -17,7 +17,8 @@ public class AccountServiceTest : BaseStripeTest private readonly AccountListOptions listOptions; private readonly AccountRejectOptions rejectOptions; - public AccountServiceTest() + public AccountServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new AccountService(); diff --git a/src/StripeTests/Services/ApplePayDomains/ApplePayDomainServiceTest.cs b/src/StripeTests/Services/ApplePayDomains/ApplePayDomainServiceTest.cs index 9aa16458b8..cb3106680f 100644 --- a/src/StripeTests/Services/ApplePayDomains/ApplePayDomainServiceTest.cs +++ b/src/StripeTests/Services/ApplePayDomains/ApplePayDomainServiceTest.cs @@ -15,7 +15,8 @@ public class ApplePayDomainServiceTest : BaseStripeTest private readonly ApplePayDomainCreateOptions createOptions; private readonly ApplePayDomainListOptions listOptions; - public ApplePayDomainServiceTest() + public ApplePayDomainServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ApplePayDomainService(); diff --git a/src/StripeTests/Services/ApplicationFeeRefunds/ApplicationFeeRefundServiceTest.cs b/src/StripeTests/Services/ApplicationFeeRefunds/ApplicationFeeRefundServiceTest.cs index 1e1155e10e..6d9cb518b9 100644 --- a/src/StripeTests/Services/ApplicationFeeRefunds/ApplicationFeeRefundServiceTest.cs +++ b/src/StripeTests/Services/ApplicationFeeRefunds/ApplicationFeeRefundServiceTest.cs @@ -17,7 +17,8 @@ public class ApplicationFeeRefundServiceTest : BaseStripeTest private readonly ApplicationFeeRefundUpdateOptions updateOptions; private readonly ApplicationFeeRefundListOptions listOptions; - public ApplicationFeeRefundServiceTest() + public ApplicationFeeRefundServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ApplicationFeeRefundService(); diff --git a/src/StripeTests/Services/ApplicationFees/ApplicationFeeServiceTest.cs b/src/StripeTests/Services/ApplicationFees/ApplicationFeeServiceTest.cs index b31b67bfda..d7ff693fb7 100644 --- a/src/StripeTests/Services/ApplicationFees/ApplicationFeeServiceTest.cs +++ b/src/StripeTests/Services/ApplicationFees/ApplicationFeeServiceTest.cs @@ -14,7 +14,8 @@ public class ApplicationFeeServiceTest : BaseStripeTest private readonly ApplicationFeeService service; private readonly ApplicationFeeListOptions listOptions; - public ApplicationFeeServiceTest() + public ApplicationFeeServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ApplicationFeeService(); diff --git a/src/StripeTests/Services/Balance/BalanceServiceTest.cs b/src/StripeTests/Services/Balance/BalanceServiceTest.cs index e0d05b98c3..ea5f0b9174 100644 --- a/src/StripeTests/Services/Balance/BalanceServiceTest.cs +++ b/src/StripeTests/Services/Balance/BalanceServiceTest.cs @@ -11,7 +11,8 @@ public class BalanceServiceTest : BaseStripeTest { private readonly BalanceService service; - public BalanceServiceTest() + public BalanceServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new BalanceService(); } diff --git a/src/StripeTests/Services/BalanceTransactions/BalanceTransactionServiceTest.cs b/src/StripeTests/Services/BalanceTransactions/BalanceTransactionServiceTest.cs index b076362504..617e2c7c24 100644 --- a/src/StripeTests/Services/BalanceTransactions/BalanceTransactionServiceTest.cs +++ b/src/StripeTests/Services/BalanceTransactions/BalanceTransactionServiceTest.cs @@ -14,7 +14,8 @@ public class BalanceTransactionServiceTest : BaseStripeTest private readonly BalanceTransactionService service; private readonly BalanceTransactionListOptions listOptions; - public BalanceTransactionServiceTest() + public BalanceTransactionServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new BalanceTransactionService(); diff --git a/src/StripeTests/Services/BankAccounts/BankAccountListOptionsTest.cs b/src/StripeTests/Services/BankAccounts/BankAccountListOptionsTest.cs index 4e26bd285f..df76ff9a02 100644 --- a/src/StripeTests/Services/BankAccounts/BankAccountListOptionsTest.cs +++ b/src/StripeTests/Services/BankAccounts/BankAccountListOptionsTest.cs @@ -12,7 +12,8 @@ public class BankAccountListOptionsTest : BaseStripeTest { private readonly BankAccountService service; - public BankAccountListOptionsTest() + public BankAccountListOptionsTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new BankAccountService(); } diff --git a/src/StripeTests/Services/BankAccounts/BankAccountServiceTest.cs b/src/StripeTests/Services/BankAccounts/BankAccountServiceTest.cs index 515dbefcec..1d68417e3d 100644 --- a/src/StripeTests/Services/BankAccounts/BankAccountServiceTest.cs +++ b/src/StripeTests/Services/BankAccounts/BankAccountServiceTest.cs @@ -18,7 +18,8 @@ public class BankAccountServiceTest : BaseStripeTest private readonly BankAccountListOptions listOptions; private readonly BankAccountVerifyOptions verifyOptions; - public BankAccountServiceTest() + public BankAccountServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new BankAccountService(); diff --git a/src/StripeTests/Services/Cards/CardListOptionsTest.cs b/src/StripeTests/Services/Cards/CardListOptionsTest.cs index fdb070fe6d..6660e9a9df 100644 --- a/src/StripeTests/Services/Cards/CardListOptionsTest.cs +++ b/src/StripeTests/Services/Cards/CardListOptionsTest.cs @@ -12,7 +12,8 @@ public class CardListOptionsTest : BaseStripeTest { private readonly CardService service; - public CardListOptionsTest() + public CardListOptionsTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CardService(); } diff --git a/src/StripeTests/Services/Cards/CardServiceTest.cs b/src/StripeTests/Services/Cards/CardServiceTest.cs index 2265ff5c45..8735a26ebe 100644 --- a/src/StripeTests/Services/Cards/CardServiceTest.cs +++ b/src/StripeTests/Services/Cards/CardServiceTest.cs @@ -21,7 +21,8 @@ public class CardServiceTest : BaseStripeTest private readonly CardUpdateOptions updateOptions; private readonly CardListOptions listOptions; - public CardServiceTest() + public CardServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CardService(); diff --git a/src/StripeTests/Services/Charges/ChargeServiceTest.cs b/src/StripeTests/Services/Charges/ChargeServiceTest.cs index f5f45a89b8..5c4a42c8bf 100644 --- a/src/StripeTests/Services/Charges/ChargeServiceTest.cs +++ b/src/StripeTests/Services/Charges/ChargeServiceTest.cs @@ -17,7 +17,8 @@ public class ChargeServiceTest : BaseStripeTest private readonly ChargeUpdateOptions updateOptions; private readonly ChargeListOptions listOptions; - public ChargeServiceTest() + public ChargeServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ChargeService(); diff --git a/src/StripeTests/Services/CountrySpecs/CountrySpecServiceTest.cs b/src/StripeTests/Services/CountrySpecs/CountrySpecServiceTest.cs index 9f2673cefe..013903064a 100644 --- a/src/StripeTests/Services/CountrySpecs/CountrySpecServiceTest.cs +++ b/src/StripeTests/Services/CountrySpecs/CountrySpecServiceTest.cs @@ -14,7 +14,8 @@ public class CountrySpecServiceTest : BaseStripeTest private readonly CountrySpecService service; private readonly CountrySpecListOptions listOptions; - public CountrySpecServiceTest() + public CountrySpecServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CountrySpecService(); diff --git a/src/StripeTests/Services/Coupons/CouponCreateOptionsTest.cs b/src/StripeTests/Services/Coupons/CouponCreateOptionsTest.cs index 200678ba38..099efd36fb 100644 --- a/src/StripeTests/Services/Coupons/CouponCreateOptionsTest.cs +++ b/src/StripeTests/Services/Coupons/CouponCreateOptionsTest.cs @@ -12,7 +12,8 @@ public class CouponCreateOptionsTest : BaseStripeTest { private readonly CouponService service; - public CouponCreateOptionsTest() + public CouponCreateOptionsTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CouponService(); } diff --git a/src/StripeTests/Services/Coupons/CouponServiceTest.cs b/src/StripeTests/Services/Coupons/CouponServiceTest.cs index 28c752f159..f7668ae440 100644 --- a/src/StripeTests/Services/Coupons/CouponServiceTest.cs +++ b/src/StripeTests/Services/Coupons/CouponServiceTest.cs @@ -16,7 +16,8 @@ public class CouponServiceTest : BaseStripeTest private readonly CouponUpdateOptions updateOptions; private readonly CouponListOptions listOptions; - public CouponServiceTest() + public CouponServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CouponService(); diff --git a/src/StripeTests/Services/Customers/CustomerServiceTest.cs b/src/StripeTests/Services/Customers/CustomerServiceTest.cs index eb36d3f196..14cc5a0a19 100644 --- a/src/StripeTests/Services/Customers/CustomerServiceTest.cs +++ b/src/StripeTests/Services/Customers/CustomerServiceTest.cs @@ -16,7 +16,8 @@ public class CustomerServiceTest : BaseStripeTest private readonly CustomerUpdateOptions updateOptions; private readonly CustomerListOptions listOptions; - public CustomerServiceTest() + public CustomerServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CustomerService(); diff --git a/src/StripeTests/Services/Discounts/DiscountServiceTest.cs b/src/StripeTests/Services/Discounts/DiscountServiceTest.cs index dc63fd9bea..f5877f5c2a 100644 --- a/src/StripeTests/Services/Discounts/DiscountServiceTest.cs +++ b/src/StripeTests/Services/Discounts/DiscountServiceTest.cs @@ -11,7 +11,8 @@ public class DiscountServiceTest : BaseStripeTest { private readonly DiscountService service; - public DiscountServiceTest() + public DiscountServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new DiscountService(); } diff --git a/src/StripeTests/Services/Disputes/DisputeServiceTest.cs b/src/StripeTests/Services/Disputes/DisputeServiceTest.cs index ffd5f11406..8ba3b177c2 100644 --- a/src/StripeTests/Services/Disputes/DisputeServiceTest.cs +++ b/src/StripeTests/Services/Disputes/DisputeServiceTest.cs @@ -15,7 +15,8 @@ public class DisputeServiceTest : BaseStripeTest private readonly DisputeUpdateOptions updateOptions; private readonly DisputeListOptions listOptions; - public DisputeServiceTest() + public DisputeServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new DisputeService(); diff --git a/src/StripeTests/Services/EphemeralKeys/EphemeralKeyServiceTest.cs b/src/StripeTests/Services/EphemeralKeys/EphemeralKeyServiceTest.cs index 2647a85e58..269aa4a631 100644 --- a/src/StripeTests/Services/EphemeralKeys/EphemeralKeyServiceTest.cs +++ b/src/StripeTests/Services/EphemeralKeys/EphemeralKeyServiceTest.cs @@ -14,7 +14,8 @@ public class EphemeralKeyServiceTest : BaseStripeTest private readonly EphemeralKeyService service; private readonly EphemeralKeyCreateOptions createOptions; - public EphemeralKeyServiceTest() + public EphemeralKeyServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new EphemeralKeyService(); diff --git a/src/StripeTests/Services/Events/EventServiceTest.cs b/src/StripeTests/Services/Events/EventServiceTest.cs index a364e117ed..c6621fb950 100644 --- a/src/StripeTests/Services/Events/EventServiceTest.cs +++ b/src/StripeTests/Services/Events/EventServiceTest.cs @@ -14,7 +14,8 @@ public class EventServiceTest : BaseStripeTest private readonly EventService service; private readonly EventListOptions listOptions; - public EventServiceTest() + public EventServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new EventService(); diff --git a/src/StripeTests/Services/Events/EventUtilityTest.cs b/src/StripeTests/Services/Events/EventUtilityTest.cs index c1fc67d662..dec7bb4048 100644 --- a/src/StripeTests/Services/Events/EventUtilityTest.cs +++ b/src/StripeTests/Services/Events/EventUtilityTest.cs @@ -10,7 +10,8 @@ public class EventUtilityTest : BaseStripeTest private readonly string json; private readonly string secret; - public EventUtilityTest() + public EventUtilityTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.eventTimestamp = 1533204620; this.secret = "webhook_secret"; diff --git a/src/StripeTests/Services/ExchangeRates/ExchangeRateServiceTest.cs b/src/StripeTests/Services/ExchangeRates/ExchangeRateServiceTest.cs index 2a032934a3..5157e5f311 100644 --- a/src/StripeTests/Services/ExchangeRates/ExchangeRateServiceTest.cs +++ b/src/StripeTests/Services/ExchangeRates/ExchangeRateServiceTest.cs @@ -12,7 +12,8 @@ public class ExchangeRateServiceTest : BaseStripeTest private readonly ExchangeRateService service; private readonly ExchangeRateListOptions listOptions; - public ExchangeRateServiceTest() + public ExchangeRateServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ExchangeRateService(); diff --git a/src/StripeTests/Services/ExternalAccounts/ExternalAccountServiceTest.cs b/src/StripeTests/Services/ExternalAccounts/ExternalAccountServiceTest.cs index e820354f85..3b25d2355f 100644 --- a/src/StripeTests/Services/ExternalAccounts/ExternalAccountServiceTest.cs +++ b/src/StripeTests/Services/ExternalAccounts/ExternalAccountServiceTest.cs @@ -17,7 +17,8 @@ public class ExternalAccountServiceTest : BaseStripeTest private readonly ExternalAccountUpdateOptions updateOptions; private readonly ExternalAccountListOptions listOptions; - public ExternalAccountServiceTest() + public ExternalAccountServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ExternalAccountService(); diff --git a/src/StripeTests/Services/FileLinks/FileLinkServiceTest.cs b/src/StripeTests/Services/FileLinks/FileLinkServiceTest.cs index 4e05c15db0..718a1735d8 100644 --- a/src/StripeTests/Services/FileLinks/FileLinkServiceTest.cs +++ b/src/StripeTests/Services/FileLinks/FileLinkServiceTest.cs @@ -16,7 +16,8 @@ public class FileLinkServiceTest : BaseStripeTest private readonly FileLinkUpdateOptions updateOptions; private readonly FileLinkListOptions listOptions; - public FileLinkServiceTest() + public FileLinkServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new FileLinkService(); diff --git a/src/StripeTests/Services/Files/FileServiceTest.cs b/src/StripeTests/Services/Files/FileServiceTest.cs index 4fb41e7115..7dc970e8ad 100644 --- a/src/StripeTests/Services/Files/FileServiceTest.cs +++ b/src/StripeTests/Services/Files/FileServiceTest.cs @@ -19,7 +19,8 @@ public class FileServiceTest : BaseStripeTest private readonly FileCreateOptions createOptions; private readonly FileListOptions listOptions; - public FileServiceTest() + public FileServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new FileService(); diff --git a/src/StripeTests/Services/InvoiceItems/InvoiceItemServiceTest.cs b/src/StripeTests/Services/InvoiceItems/InvoiceItemServiceTest.cs index ebb229dc0e..9c231004fd 100644 --- a/src/StripeTests/Services/InvoiceItems/InvoiceItemServiceTest.cs +++ b/src/StripeTests/Services/InvoiceItems/InvoiceItemServiceTest.cs @@ -16,7 +16,8 @@ public class InvoiceItemServiceTest : BaseStripeTest private readonly InvoiceItemUpdateOptions updateOptions; private readonly InvoiceItemListOptions listOptions; - public InvoiceItemServiceTest() + public InvoiceItemServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new InvoiceItemService(); diff --git a/src/StripeTests/Services/Invoices/InvoiceServiceTest.cs b/src/StripeTests/Services/Invoices/InvoiceServiceTest.cs index 572f073f8d..61d24ac0eb 100644 --- a/src/StripeTests/Services/Invoices/InvoiceServiceTest.cs +++ b/src/StripeTests/Services/Invoices/InvoiceServiceTest.cs @@ -24,7 +24,8 @@ public class InvoiceServiceTest : BaseStripeTest private readonly InvoiceSendOptions sendOptions; private readonly InvoiceVoidOptions voidOptions; - public InvoiceServiceTest() + public InvoiceServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new InvoiceService(); diff --git a/src/StripeTests/Services/Issuing/Authorizations/AuthorizationServiceTest.cs b/src/StripeTests/Services/Issuing/Authorizations/AuthorizationServiceTest.cs index 1702f27e68..caed232e4a 100644 --- a/src/StripeTests/Services/Issuing/Authorizations/AuthorizationServiceTest.cs +++ b/src/StripeTests/Services/Issuing/Authorizations/AuthorizationServiceTest.cs @@ -15,7 +15,8 @@ public class AuthorizationServiceTest : BaseStripeTest private readonly AuthorizationUpdateOptions updateOptions; private readonly AuthorizationListOptions listOptions; - public AuthorizationServiceTest() + public AuthorizationServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new AuthorizationService(); diff --git a/src/StripeTests/Services/Issuing/Cardholders/CardholderServiceTest.cs b/src/StripeTests/Services/Issuing/Cardholders/CardholderServiceTest.cs index f98790cf3d..73200e7c73 100644 --- a/src/StripeTests/Services/Issuing/Cardholders/CardholderServiceTest.cs +++ b/src/StripeTests/Services/Issuing/Cardholders/CardholderServiceTest.cs @@ -17,7 +17,8 @@ public class CardholderServiceTest : BaseStripeTest private readonly CardholderUpdateOptions updateOptions; private readonly CardholderListOptions listOptions; - public CardholderServiceTest() + public CardholderServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CardholderService(); diff --git a/src/StripeTests/Services/Issuing/Cards/IssuingCardServiceTest.cs b/src/StripeTests/Services/Issuing/Cards/IssuingCardServiceTest.cs index 760136c234..488a60fdf2 100644 --- a/src/StripeTests/Services/Issuing/Cards/IssuingCardServiceTest.cs +++ b/src/StripeTests/Services/Issuing/Cards/IssuingCardServiceTest.cs @@ -16,7 +16,8 @@ public class IssuingCardServiceTest : BaseStripeTest private readonly CardUpdateOptions updateOptions; private readonly CardListOptions listOptions; - public IssuingCardServiceTest() + public IssuingCardServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new CardService(); diff --git a/src/StripeTests/Services/Issuing/Disputes/IssuingDisputeServiceTest.cs b/src/StripeTests/Services/Issuing/Disputes/IssuingDisputeServiceTest.cs index a3aca92dcd..e9d8a6003a 100644 --- a/src/StripeTests/Services/Issuing/Disputes/IssuingDisputeServiceTest.cs +++ b/src/StripeTests/Services/Issuing/Disputes/IssuingDisputeServiceTest.cs @@ -16,7 +16,8 @@ public class IssuingDisputeServiceTest : BaseStripeTest private readonly DisputeUpdateOptions updateOptions; private readonly DisputeListOptions listOptions; - public IssuingDisputeServiceTest() + public IssuingDisputeServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new DisputeService(); diff --git a/src/StripeTests/Services/Issuing/Transactions/TransactionServiceTest.cs b/src/StripeTests/Services/Issuing/Transactions/TransactionServiceTest.cs index 8cdd6aab30..29b7cb66e3 100644 --- a/src/StripeTests/Services/Issuing/Transactions/TransactionServiceTest.cs +++ b/src/StripeTests/Services/Issuing/Transactions/TransactionServiceTest.cs @@ -15,7 +15,8 @@ public class TransactionServiceTest : BaseStripeTest private readonly TransactionUpdateOptions updateOptions; private readonly TransactionListOptions listOptions; - public TransactionServiceTest() + public TransactionServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new TransactionService(); diff --git a/src/StripeTests/Services/LoginLinks/LoginLinkServiceTest.cs b/src/StripeTests/Services/LoginLinks/LoginLinkServiceTest.cs index b1fa2de81c..ef69233cc4 100644 --- a/src/StripeTests/Services/LoginLinks/LoginLinkServiceTest.cs +++ b/src/StripeTests/Services/LoginLinks/LoginLinkServiceTest.cs @@ -14,7 +14,8 @@ public class LoginLinkServiceTest : BaseStripeTest private readonly LoginLinkService service; private readonly LoginLinkCreateOptions createOptions; - public LoginLinkServiceTest() + public LoginLinkServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new LoginLinkService(); diff --git a/src/StripeTests/Services/Orders/OrderServiceTest.cs b/src/StripeTests/Services/Orders/OrderServiceTest.cs index 7173cabc40..48f2d2005d 100644 --- a/src/StripeTests/Services/Orders/OrderServiceTest.cs +++ b/src/StripeTests/Services/Orders/OrderServiceTest.cs @@ -17,7 +17,8 @@ public class OrderServiceTest : BaseStripeTest private readonly OrderPayOptions payOptions; private readonly OrderListOptions listOptions; - public OrderServiceTest() + public OrderServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new OrderService(); diff --git a/src/StripeTests/Services/PaymentIntents/PaymentIntentServiceTest.cs b/src/StripeTests/Services/PaymentIntents/PaymentIntentServiceTest.cs index 57c15c1b61..042be21e2d 100644 --- a/src/StripeTests/Services/PaymentIntents/PaymentIntentServiceTest.cs +++ b/src/StripeTests/Services/PaymentIntents/PaymentIntentServiceTest.cs @@ -19,7 +19,8 @@ public class PaymentIntentServiceTest : BaseStripeTest private readonly PaymentIntentListOptions listOptions; private readonly PaymentIntentUpdateOptions updateOptions; - public PaymentIntentServiceTest() + public PaymentIntentServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new PaymentIntentService(); diff --git a/src/StripeTests/Services/Payouts/PayoutServiceTest.cs b/src/StripeTests/Services/Payouts/PayoutServiceTest.cs index c1757bb456..a73f81321a 100644 --- a/src/StripeTests/Services/Payouts/PayoutServiceTest.cs +++ b/src/StripeTests/Services/Payouts/PayoutServiceTest.cs @@ -16,7 +16,8 @@ public class PayoutServiceTest : BaseStripeTest private readonly PayoutUpdateOptions updateOptions; private readonly PayoutListOptions listOptions; - public PayoutServiceTest() + public PayoutServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new PayoutService(); diff --git a/src/StripeTests/Services/Persons/PersonServiceTest.cs b/src/StripeTests/Services/Persons/PersonServiceTest.cs index 8eaabcbb53..d468e12c72 100644 --- a/src/StripeTests/Services/Persons/PersonServiceTest.cs +++ b/src/StripeTests/Services/Persons/PersonServiceTest.cs @@ -17,7 +17,8 @@ public class PersonServiceTest : BaseStripeTest private readonly PersonUpdateOptions updateOptions; private readonly PersonListOptions listOptions; - public PersonServiceTest() + public PersonServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new PersonService(); diff --git a/src/StripeTests/Services/Plans/PlanCreateOptionsTest.cs b/src/StripeTests/Services/Plans/PlanCreateOptionsTest.cs index dd2044f2c2..1b3ae77cfd 100644 --- a/src/StripeTests/Services/Plans/PlanCreateOptionsTest.cs +++ b/src/StripeTests/Services/Plans/PlanCreateOptionsTest.cs @@ -12,7 +12,8 @@ public class PlanCreateOptionsTest : BaseStripeTest { private readonly PlanService service; - public PlanCreateOptionsTest() + public PlanCreateOptionsTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new PlanService(); } diff --git a/src/StripeTests/Services/Plans/PlanServiceTest.cs b/src/StripeTests/Services/Plans/PlanServiceTest.cs index e3b1942ca7..c2596a0b0e 100644 --- a/src/StripeTests/Services/Plans/PlanServiceTest.cs +++ b/src/StripeTests/Services/Plans/PlanServiceTest.cs @@ -16,7 +16,8 @@ public class PlanServiceTest : BaseStripeTest private readonly PlanUpdateOptions updateOptions; private readonly PlanListOptions listOptions; - public PlanServiceTest() + public PlanServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new PlanService(); diff --git a/src/StripeTests/Services/Products/ProductServiceTest.cs b/src/StripeTests/Services/Products/ProductServiceTest.cs index 28a8d5dadd..9b41b7267a 100644 --- a/src/StripeTests/Services/Products/ProductServiceTest.cs +++ b/src/StripeTests/Services/Products/ProductServiceTest.cs @@ -16,7 +16,8 @@ public class ProductServiceTest : BaseStripeTest private readonly ProductUpdateOptions updateOptions; private readonly ProductListOptions listOptions; - public ProductServiceTest() + public ProductServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ProductService(); diff --git a/src/StripeTests/Services/Radar/ValueListItems/ValueListItemServiceTest.cs b/src/StripeTests/Services/Radar/ValueListItems/ValueListItemServiceTest.cs index 1d15ce98ce..b82c700bfe 100644 --- a/src/StripeTests/Services/Radar/ValueListItems/ValueListItemServiceTest.cs +++ b/src/StripeTests/Services/Radar/ValueListItems/ValueListItemServiceTest.cs @@ -16,7 +16,8 @@ public class ValueListItemServiceTest : BaseStripeTest private readonly ValueListItemCreateOptions createOptions; private readonly ValueListItemListOptions listOptions; - public ValueListItemServiceTest() + public ValueListItemServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ValueListItemService(); diff --git a/src/StripeTests/Services/Radar/ValueLists/ValueListServiceTest.cs b/src/StripeTests/Services/Radar/ValueLists/ValueListServiceTest.cs index 23ab64db5b..97b9fab673 100644 --- a/src/StripeTests/Services/Radar/ValueLists/ValueListServiceTest.cs +++ b/src/StripeTests/Services/Radar/ValueLists/ValueListServiceTest.cs @@ -17,7 +17,8 @@ public class ValueListServiceTest : BaseStripeTest private readonly ValueListUpdateOptions updateOptions; private readonly ValueListListOptions listOptions; - public ValueListServiceTest() + public ValueListServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ValueListService(); diff --git a/src/StripeTests/Services/Refunds/RefundServiceTest.cs b/src/StripeTests/Services/Refunds/RefundServiceTest.cs index 5f59412b36..e93ffaaade 100644 --- a/src/StripeTests/Services/Refunds/RefundServiceTest.cs +++ b/src/StripeTests/Services/Refunds/RefundServiceTest.cs @@ -16,7 +16,8 @@ public class RefundServiceTest : BaseStripeTest private readonly RefundUpdateOptions updateOptions; private readonly RefundListOptions listOptions; - public RefundServiceTest() + public RefundServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new RefundService(); diff --git a/src/StripeTests/Services/Reporting/ReportRuns/ReportRunServiceTest.cs b/src/StripeTests/Services/Reporting/ReportRuns/ReportRunServiceTest.cs index 386e831bbd..c3deefa426 100644 --- a/src/StripeTests/Services/Reporting/ReportRuns/ReportRunServiceTest.cs +++ b/src/StripeTests/Services/Reporting/ReportRuns/ReportRunServiceTest.cs @@ -16,7 +16,8 @@ public class ReportRunServiceTest : BaseStripeTest private readonly ReportRunCreateOptions createOptions; private readonly ReportRunListOptions listOptions; - public ReportRunServiceTest() + public ReportRunServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ReportRunService(); diff --git a/src/StripeTests/Services/Reporting/ReportTypes/ReportTypeServiceTest.cs b/src/StripeTests/Services/Reporting/ReportTypes/ReportTypeServiceTest.cs index 33615dd76d..e6a6083ff3 100644 --- a/src/StripeTests/Services/Reporting/ReportTypes/ReportTypeServiceTest.cs +++ b/src/StripeTests/Services/Reporting/ReportTypes/ReportTypeServiceTest.cs @@ -15,7 +15,8 @@ public class ReportTypeServiceTest : BaseStripeTest private readonly ReportTypeService service; private readonly ReportTypeListOptions listOptions; - public ReportTypeServiceTest() + public ReportTypeServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ReportTypeService(); diff --git a/src/StripeTests/Services/Reviews/ReviewServiceTest.cs b/src/StripeTests/Services/Reviews/ReviewServiceTest.cs index c9082fe166..87df51d3bb 100644 --- a/src/StripeTests/Services/Reviews/ReviewServiceTest.cs +++ b/src/StripeTests/Services/Reviews/ReviewServiceTest.cs @@ -16,7 +16,8 @@ public class ReviewServiceTest : BaseStripeTest private readonly ReviewApproveOptions approveOptions; private readonly ReviewListOptions listOptions; - public ReviewServiceTest() + public ReviewServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ReviewService(); diff --git a/src/StripeTests/Services/Sigma/ScheduledQueryRuns/ScheduledQueryRunServiceTest.cs b/src/StripeTests/Services/Sigma/ScheduledQueryRuns/ScheduledQueryRunServiceTest.cs index 6da237552c..dfecda2fbe 100644 --- a/src/StripeTests/Services/Sigma/ScheduledQueryRuns/ScheduledQueryRunServiceTest.cs +++ b/src/StripeTests/Services/Sigma/ScheduledQueryRuns/ScheduledQueryRunServiceTest.cs @@ -14,7 +14,8 @@ public class ScheduledQueryRunServiceTest : BaseStripeTest private readonly ScheduledQueryRunService service; private readonly ScheduledQueryRunListOptions listOptions; - public ScheduledQueryRunServiceTest() + public ScheduledQueryRunServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ScheduledQueryRunService(); diff --git a/src/StripeTests/Services/Skus/SkuServiceTest.cs b/src/StripeTests/Services/Skus/SkuServiceTest.cs index f79d419d6a..6e993a7d28 100644 --- a/src/StripeTests/Services/Skus/SkuServiceTest.cs +++ b/src/StripeTests/Services/Skus/SkuServiceTest.cs @@ -16,7 +16,8 @@ public class SkuServiceTest : BaseStripeTest private readonly SkuUpdateOptions updateOptions; private readonly SkuListOptions listOptions; - public SkuServiceTest() + public SkuServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new SkuService(); diff --git a/src/StripeTests/Services/SourceTransactions/SourceTransactionServiceTest.cs b/src/StripeTests/Services/SourceTransactions/SourceTransactionServiceTest.cs index 151f24803e..8d83031d7f 100644 --- a/src/StripeTests/Services/SourceTransactions/SourceTransactionServiceTest.cs +++ b/src/StripeTests/Services/SourceTransactions/SourceTransactionServiceTest.cs @@ -15,7 +15,8 @@ public class SourceTransactionServiceTest : BaseStripeTest private readonly SourceTransactionService service; private readonly SourceTransactionsListOptions listOptions; - public SourceTransactionServiceTest() + public SourceTransactionServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new SourceTransactionService(); diff --git a/src/StripeTests/Services/Sources/SourceServiceTest.cs b/src/StripeTests/Services/Sources/SourceServiceTest.cs index eceaee5876..30521859fc 100644 --- a/src/StripeTests/Services/Sources/SourceServiceTest.cs +++ b/src/StripeTests/Services/Sources/SourceServiceTest.cs @@ -20,7 +20,8 @@ public class SourceServiceTest : BaseStripeTest private readonly SourceUpdateOptions updateOptions; private readonly SourceVerifyOptions verifyOptions; - public SourceServiceTest() + public SourceServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new SourceService(); diff --git a/src/StripeTests/Services/SubscriptionItems/SubscriptionItemServiceTest.cs b/src/StripeTests/Services/SubscriptionItems/SubscriptionItemServiceTest.cs index 7bd226a5f5..7726dfd764 100644 --- a/src/StripeTests/Services/SubscriptionItems/SubscriptionItemServiceTest.cs +++ b/src/StripeTests/Services/SubscriptionItems/SubscriptionItemServiceTest.cs @@ -16,7 +16,8 @@ public class SubscriptionItemServiceTest : BaseStripeTest private readonly SubscriptionItemUpdateOptions updateOptions; private readonly SubscriptionItemListOptions listOptions; - public SubscriptionItemServiceTest() + public SubscriptionItemServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new SubscriptionItemService(); diff --git a/src/StripeTests/Services/Subscriptions/SubscriptionCreateOptionsTest.cs b/src/StripeTests/Services/Subscriptions/SubscriptionCreateOptionsTest.cs index 903b85a2eb..6d3ebf2766 100644 --- a/src/StripeTests/Services/Subscriptions/SubscriptionCreateOptionsTest.cs +++ b/src/StripeTests/Services/Subscriptions/SubscriptionCreateOptionsTest.cs @@ -12,7 +12,8 @@ public class SubscriptionCreateOptionsTest : BaseStripeTest { private readonly SubscriptionService service; - public SubscriptionCreateOptionsTest() + public SubscriptionCreateOptionsTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new SubscriptionService(); } diff --git a/src/StripeTests/Services/Subscriptions/SubscriptionServiceTest.cs b/src/StripeTests/Services/Subscriptions/SubscriptionServiceTest.cs index ad6d2354c4..02cc763232 100644 --- a/src/StripeTests/Services/Subscriptions/SubscriptionServiceTest.cs +++ b/src/StripeTests/Services/Subscriptions/SubscriptionServiceTest.cs @@ -17,7 +17,8 @@ public class SubscriptionServiceTest : BaseStripeTest private readonly SubscriptionUpdateOptions updateOptions; private readonly SubscriptionListOptions listOptions; - public SubscriptionServiceTest() + public SubscriptionServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new SubscriptionService(); diff --git a/src/StripeTests/Services/Terminal/ConnectionTokens/ConnectionTokenServiceTest.cs b/src/StripeTests/Services/Terminal/ConnectionTokens/ConnectionTokenServiceTest.cs index f403930f5a..ceb7a2623a 100644 --- a/src/StripeTests/Services/Terminal/ConnectionTokens/ConnectionTokenServiceTest.cs +++ b/src/StripeTests/Services/Terminal/ConnectionTokens/ConnectionTokenServiceTest.cs @@ -13,7 +13,8 @@ public class ConnectionTokenServiceTest : BaseStripeTest private readonly ConnectionTokenService service; private readonly ConnectionTokenCreateOptions createOptions; - public ConnectionTokenServiceTest() + public ConnectionTokenServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ConnectionTokenService(); diff --git a/src/StripeTests/Services/Terminal/Locations/LocationServiceTest.cs b/src/StripeTests/Services/Terminal/Locations/LocationServiceTest.cs index 6c9e281ac6..1cabe2c578 100644 --- a/src/StripeTests/Services/Terminal/Locations/LocationServiceTest.cs +++ b/src/StripeTests/Services/Terminal/Locations/LocationServiceTest.cs @@ -18,7 +18,8 @@ public class LocationServiceTest : BaseStripeTest private readonly LocationListOptions listOptions; private readonly LocationUpdateOptions updateOptions; - public LocationServiceTest() + public LocationServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new LocationService(); diff --git a/src/StripeTests/Services/Terminal/Readers/ReaderServiceTest.cs b/src/StripeTests/Services/Terminal/Readers/ReaderServiceTest.cs index 8b7dd06629..0f9612126e 100644 --- a/src/StripeTests/Services/Terminal/Readers/ReaderServiceTest.cs +++ b/src/StripeTests/Services/Terminal/Readers/ReaderServiceTest.cs @@ -17,7 +17,8 @@ public class ReaderServiceTest : BaseStripeTest private readonly ReaderListOptions listOptions; private readonly ReaderUpdateOptions updateOptions; - public ReaderServiceTest() + public ReaderServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ReaderService(); diff --git a/src/StripeTests/Services/ThreeDSecure/ThreeDSecureServiceTest.cs b/src/StripeTests/Services/ThreeDSecure/ThreeDSecureServiceTest.cs index 8de2f9b30c..920942a569 100644 --- a/src/StripeTests/Services/ThreeDSecure/ThreeDSecureServiceTest.cs +++ b/src/StripeTests/Services/ThreeDSecure/ThreeDSecureServiceTest.cs @@ -12,7 +12,8 @@ public class ThreeDSecureServiceTest : BaseStripeTest private readonly ThreeDSecureService service; private readonly ThreeDSecureCreateOptions createOptions; - public ThreeDSecureServiceTest() + public ThreeDSecureServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new ThreeDSecureService(); diff --git a/src/StripeTests/Services/Tokens/TokenServiceTest.cs b/src/StripeTests/Services/Tokens/TokenServiceTest.cs index e3d7299768..237fac5dcf 100644 --- a/src/StripeTests/Services/Tokens/TokenServiceTest.cs +++ b/src/StripeTests/Services/Tokens/TokenServiceTest.cs @@ -15,7 +15,8 @@ public class TokenServiceTest : BaseStripeTest private readonly TokenService service; private readonly TokenCreateOptions createOptions; - public TokenServiceTest() + public TokenServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new TokenService(); diff --git a/src/StripeTests/Services/Topups/TopupServiceTest.cs b/src/StripeTests/Services/Topups/TopupServiceTest.cs index 91c95ae945..1c8d108eaf 100644 --- a/src/StripeTests/Services/Topups/TopupServiceTest.cs +++ b/src/StripeTests/Services/Topups/TopupServiceTest.cs @@ -16,7 +16,8 @@ public class TopupServiceTest : BaseStripeTest private readonly TopupUpdateOptions updateOptions; private readonly TopupListOptions listOptions; - public TopupServiceTest() + public TopupServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new TopupService(); diff --git a/src/StripeTests/Services/TransferReversals/TransferReversalServiceTest.cs b/src/StripeTests/Services/TransferReversals/TransferReversalServiceTest.cs index 0dd17e7410..3092615eb4 100644 --- a/src/StripeTests/Services/TransferReversals/TransferReversalServiceTest.cs +++ b/src/StripeTests/Services/TransferReversals/TransferReversalServiceTest.cs @@ -17,7 +17,8 @@ public class TransferReversalServiceTest : BaseStripeTest private readonly TransferReversalUpdateOptions updateOptions; private readonly TransferReversalListOptions listOptions; - public TransferReversalServiceTest() + public TransferReversalServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new TransferReversalService(); diff --git a/src/StripeTests/Services/Transfers/TransferServiceTest.cs b/src/StripeTests/Services/Transfers/TransferServiceTest.cs index 4ad37f7c55..aca7ea96a4 100644 --- a/src/StripeTests/Services/Transfers/TransferServiceTest.cs +++ b/src/StripeTests/Services/Transfers/TransferServiceTest.cs @@ -16,7 +16,8 @@ public class TransferServiceTest : BaseStripeTest private readonly TransferUpdateOptions updateOptions; private readonly TransferListOptions listOptions; - public TransferServiceTest() + public TransferServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new TransferService(); diff --git a/src/StripeTests/Services/UsageRecordSummaries/UsageRecordSummaryServiceTest.cs b/src/StripeTests/Services/UsageRecordSummaries/UsageRecordSummaryServiceTest.cs index 003c25bf5a..7cdc4a850e 100644 --- a/src/StripeTests/Services/UsageRecordSummaries/UsageRecordSummaryServiceTest.cs +++ b/src/StripeTests/Services/UsageRecordSummaries/UsageRecordSummaryServiceTest.cs @@ -13,7 +13,8 @@ public class UsageRecordSummaryServiceTest : BaseStripeTest private readonly UsageRecordSummaryService service; private readonly UsageRecordSummaryListOptions listOptions; - public UsageRecordSummaryServiceTest() + public UsageRecordSummaryServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new UsageRecordSummaryService(); diff --git a/src/StripeTests/Services/UsageRecords/UsageRecordServiceTest.cs b/src/StripeTests/Services/UsageRecords/UsageRecordServiceTest.cs index 9c6c6d4f85..c8126a4910 100644 --- a/src/StripeTests/Services/UsageRecords/UsageRecordServiceTest.cs +++ b/src/StripeTests/Services/UsageRecords/UsageRecordServiceTest.cs @@ -13,7 +13,8 @@ public class UsageRecordServiceTest : BaseStripeTest private readonly UsageRecordService service; private readonly UsageRecordCreateOptions createOptions; - public UsageRecordServiceTest() + public UsageRecordServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new UsageRecordService(); diff --git a/src/StripeTests/Services/WebhookEndpoints/WebhookEndpointServiceTest.cs b/src/StripeTests/Services/WebhookEndpoints/WebhookEndpointServiceTest.cs index ff68ec3190..4373024868 100644 --- a/src/StripeTests/Services/WebhookEndpoints/WebhookEndpointServiceTest.cs +++ b/src/StripeTests/Services/WebhookEndpoints/WebhookEndpointServiceTest.cs @@ -16,7 +16,8 @@ public class WebhookEndpointServiceTest : BaseStripeTest private readonly WebhookEndpointUpdateOptions updateOptions; private readonly WebhookEndpointListOptions listOptions; - public WebhookEndpointServiceTest() + public WebhookEndpointServiceTest(MockHttpClientFixture mockHttpClientFixture) + : base(mockHttpClientFixture) { this.service = new WebhookEndpointService(); diff --git a/src/StripeTests/StripeMockFixture.cs b/src/StripeTests/StripeMockFixture.cs new file mode 100644 index 0000000000..c5b8b75db2 --- /dev/null +++ b/src/StripeTests/StripeMockFixture.cs @@ -0,0 +1,138 @@ +namespace StripeTests +{ + using System; + using System.Linq; + using System.Net; + using System.Net.Http; + using Stripe; + + public class StripeMockFixture : IDisposable + { + /// Minimum required version of stripe-mock + /// + /// If you bump this, don't forget to bump `STRIPE_MOCK_VERSION` in `appveyor.yml` as well. + /// + private const string MockMinimumVersion = "0.39.0"; + + private string origApiBase; + private string origFilesBase; + private string origApiKey; + + private string port; + + public StripeMockFixture() + { + this.port = Environment.GetEnvironmentVariable("STRIPE_MOCK_PORT") ?? "12111"; + this.EnsureStripeMockMinimumVersion(); + + this.origApiBase = StripeConfiguration.GetApiBase(); + this.origFilesBase = StripeConfiguration.GetFilesBase(); + this.origApiKey = StripeConfiguration.GetApiKey(); + + StripeConfiguration.SetApiBase($"http://localhost:{this.port}/v1"); + StripeConfiguration.SetFilesBase($"http://localhost:{this.port}/v1"); + StripeConfiguration.SetApiKey("sk_test_123"); + } + + public void Dispose() + { + StripeConfiguration.SetApiBase(this.origApiBase); + StripeConfiguration.SetFilesBase(this.origFilesBase); + StripeConfiguration.SetApiKey(this.origApiKey); + } + + /// + /// Gets fixture data with expansions specified. Expansions are specified the same way as + /// they are in the normal API like customer or data.customer. + /// Use the special * character to specify that all fields should be + /// expanded. + /// + /// API path to use to get a fixture for stripe-mock + /// Set of expansions that should be applied + /// Fixture data encoded as JSON + public string GetFixture(string path, string[] expansions = null) + { + string url = $"http://localhost:{this.port}{path}"; + + if (expansions != null) + { + string query = string.Join("&", expansions.Select(x => $"expand[]={x}").ToArray()); + url += $"?{query}"; + } + + using (HttpClient client = new HttpClient()) + { + client.DefaultRequestHeaders.Authorization + = new System.Net.Http.Headers.AuthenticationHeaderValue( + "Bearer", + "sk_test_123"); + + HttpResponseMessage response; + + try + { + response = client.GetAsync(url).Result; + } + catch (Exception) + { + throw new StripeTestException( + $"Couldn't reach stripe-mock at `localhost:{this.port}`. " + + "Is it running? Please see README for setup instructions."); + } + + if (response.StatusCode != HttpStatusCode.OK) + { + throw new StripeTestException( + $"stripe-mock returned status code: {response.StatusCode}."); + } + + return response.Content.ReadAsStringAsync().Result; + } + } + + /// + /// Compares two version strings. + /// + /// A version string (e.g. "1.2.3"). + /// Another version string. + /// -1 if a > b, 1 if a < b, 0 if a == b + private static int CompareVersions(string a, string b) + { + var version1 = new Version(a); + var version2 = new Version(b); + return version2.CompareTo(version1); + } + + private void EnsureStripeMockMinimumVersion() + { + string url = $"http://localhost:{this.port}"; + + using (HttpClient client = new HttpClient()) + { + HttpResponseMessage response; + + try + { + response = client.GetAsync(url).Result; + } + catch (Exception) + { + throw new StripeTestException( + $"Couldn't reach stripe-mock at `localhost:{this.port}`. " + + "Is it running? Please see README for setup instructions."); + } + + string version = response.Headers.GetValues("Stripe-Mock-Version").FirstOrDefault(); + + if (!version.Equals("master") && + (CompareVersions(version, MockMinimumVersion) > 0)) + { + throw new StripeTestException( + $"Your version of stripe-mock ({version}) is too old. The minimum " + + $"version to run this test suite is {MockMinimumVersion}. Please see its " + + "repository for upgrade instructions."); + } + } + } + } +} diff --git a/src/StripeTests/StripeMockTestCollection.cs b/src/StripeTests/StripeMockTestCollection.cs new file mode 100644 index 0000000000..868f9f2a35 --- /dev/null +++ b/src/StripeTests/StripeMockTestCollection.cs @@ -0,0 +1,13 @@ +namespace StripeTests +{ + using Xunit; + + [CollectionDefinition("stripe-mock tests")] + public class StripeMockTestCollection : + ICollectionFixture, + ICollectionFixture + { + // This class has no code, and is never created. Its purpose is simply to be the place to + // apply [CollectionDefinition] and all the ICollectionFixture<> interfaces. + } +} diff --git a/src/StripeTests/StripeTestException.cs b/src/StripeTests/StripeTestException.cs new file mode 100644 index 0000000000..b740ca6161 --- /dev/null +++ b/src/StripeTests/StripeTestException.cs @@ -0,0 +1,20 @@ +namespace StripeTests +{ + using System; + + /// + /// Represents errors that are related to tests themselves rather than the + /// features under test. + /// + public class StripeTestException : Exception + { + public StripeTestException() + { + } + + public StripeTestException(string message) + : base(message) + { + } + } +} diff --git a/src/StripeTests/StripeTests.csproj b/src/StripeTests/StripeTests.csproj index dc1485cee0..46585db76d 100644 --- a/src/StripeTests/StripeTests.csproj +++ b/src/StripeTests/StripeTests.csproj @@ -16,16 +16,15 @@ - + - - + runtime; build; native; contentfiles; analyzers all - - + + diff --git a/src/StripeTests/Wholesome/AllStripeObjectClassesPresentInDictionary.cs b/src/StripeTests/Wholesome/AllStripeObjectClassesPresentInDictionary.cs index ae20377c65..90b320de3e 100644 --- a/src/StripeTests/Wholesome/AllStripeObjectClassesPresentInDictionary.cs +++ b/src/StripeTests/Wholesome/AllStripeObjectClassesPresentInDictionary.cs @@ -1,3 +1,4 @@ +#if NETCOREAPP namespace StripeTests { using System; @@ -8,8 +9,7 @@ namespace StripeTests using Stripe.Infrastructure; using Xunit; -#if NETCOREAPP - public class AllStripeObjectClassesPresentInDictionary + public class AllStripeObjectClassesPresentInDictionary : WholesomeTest { // Checks that all Stripe object classes (i.e. model classes that implement IHasObject) // have an entry in the Stripe.Util.ObjectsToTypes dictionary. @@ -19,11 +19,7 @@ public void Check() List results = new List(); // Get all classes that implement IHasObject - var type = typeof(IHasObject); - var assembly = type.GetTypeInfo().Assembly; - var modelClasses = assembly.DefinedTypes - .Where(t => t.IsClass && t.ImplementedInterfaces.Contains(type)) - .Select(t => t.AsType()); + var modelClasses = GetClassesWithInterface(typeof(IHasObject)); foreach (Type modelClass in modelClasses) { @@ -59,5 +55,5 @@ public void Check() } } } -#endif } +#endif diff --git a/src/StripeTests/Wholesome/DontSerializeNullDeletedAttrs.cs b/src/StripeTests/Wholesome/DontSerializeNullDeletedAttrs.cs index 827d79c6b6..bfb9e87166 100644 --- a/src/StripeTests/Wholesome/DontSerializeNullDeletedAttrs.cs +++ b/src/StripeTests/Wholesome/DontSerializeNullDeletedAttrs.cs @@ -9,7 +9,7 @@ namespace StripeTests using Stripe; using Xunit; - public class DontSerializeNullDeletedAttrs + public class DontSerializeNullDeletedAttrs : WholesomeTest { private const string AssertionMessage = "Found at least one invalid Deleted property. Make sure that the property " + @@ -21,11 +21,7 @@ public void Check() List results = new List(); // Get all StripeEntity subclasses - var type = typeof(StripeEntity); - var assembly = type.GetTypeInfo().Assembly; - var entityClasses = assembly.DefinedTypes - .Where(t => t.IsClass && t.IsSubclassOf(type)) - .Select(t => t.AsType()); + var entityClasses = GetSubclassesOf(typeof(StripeEntity)); foreach (Type entityClass in entityClasses) { diff --git a/src/StripeTests/Wholesome/NullableValueTypes.cs b/src/StripeTests/Wholesome/NullableValueTypes.cs index e29f290493..db693234b9 100644 --- a/src/StripeTests/Wholesome/NullableValueTypes.cs +++ b/src/StripeTests/Wholesome/NullableValueTypes.cs @@ -1,30 +1,23 @@ +#if NETCOREAPP namespace StripeTests { using System; - using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; - - using Microsoft.Extensions.DependencyModel; using Newtonsoft.Json; using Stripe; using Xunit; -#if NETCOREAPP - public class NullableValueTypes + public class NullableValueTypes : WholesomeTest { [Fact] - public void EnsureAllValueTypesAreNullable() + public void Check() { List results = new List(); // Get all classes that implement INestedOptions - var type = typeof(INestedOptions); - var assembly = type.GetTypeInfo().Assembly; - var optionsClasses = assembly.DefinedTypes - .Where(t => t.IsClass && t.ImplementedInterfaces.Contains(type)) - .Select(t => t.AsType()); + var optionsClasses = GetClassesWithInterface(typeof(INestedOptions)); foreach (Type optionsClass in optionsClasses) { @@ -73,5 +66,5 @@ public void EnsureAllValueTypesAreNullable() } } } -#endif } +#endif diff --git a/src/StripeTests/Wholesome/README.md b/src/StripeTests/Wholesome/README.md new file mode 100644 index 0000000000..c3530c7a5c --- /dev/null +++ b/src/StripeTests/Wholesome/README.md @@ -0,0 +1,10 @@ +## Wholesome tests + +Unlike regular tests that check the behavior of the library, wholesome tests +contain checks on the state of the Stripe.net codebase and are there to +prevent programming errors and enforce consistency. They rely heavily on +reflection. + +For example, `AllStripeObjectClassesPresentInDictionary` ensure that when a +model class is added for a new API resource, developers don't forget to add +the new type in `StripeTypeRegistry`. diff --git a/src/StripeTests/Wholesome/WholesomeTest.cs b/src/StripeTests/Wholesome/WholesomeTest.cs new file mode 100644 index 0000000000..6230a93e5b --- /dev/null +++ b/src/StripeTests/Wholesome/WholesomeTest.cs @@ -0,0 +1,36 @@ +#if NETCOREAPP +namespace StripeTests +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Reflection; + using Xunit; + + [Collection("Wholesome tests")] + public class WholesomeTest + { + /// + /// Returns the list of classes that are subclasses of the provided type. + /// + protected static IEnumerable GetSubclassesOf(Type parentClass) + { + var assembly = parentClass.GetTypeInfo().Assembly; + return assembly.DefinedTypes + .Where(t => t.IsClass && t.IsSubclassOf(parentClass)) + .Select(t => t.AsType()); + } + + /// + /// Returns the list of classes that implement the provided interface. + /// + protected static IEnumerable GetClassesWithInterface(Type implementedInterface) + { + var assembly = implementedInterface.GetTypeInfo().Assembly; + return assembly.DefinedTypes + .Where(t => t.IsClass && t.ImplementedInterfaces.Contains(implementedInterface)) + .Select(t => t.AsType()); + } + } +} +#endif diff --git a/src/StripeTests/xunit.runner.json b/src/StripeTests/xunit.runner.json index 780e791358..06ce4e4623 100644 --- a/src/StripeTests/xunit.runner.json +++ b/src/StripeTests/xunit.runner.json @@ -1,4 +1,5 @@ { "appDomain": "denied", - "parallelizeTestCollections": false + "diagnosticMessages": true, + "longRunningTestSeconds": 10 }