summaryrefslogtreecommitdiffstats
path: root/src/IOL.VippsEcommerce/Models
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2021-04-01 19:15:10 +0200
committerivarlovlie <git@ivarlovlie.no>2021-04-01 19:15:10 +0200
commit9c440d7aa4a776be9051489a40944d779d032d96 (patch)
tree361dad714d6c12db43dc42c1371d1c20d31dcb27 /src/IOL.VippsEcommerce/Models
parent04c25edf1498fcbce7c01cd7626c4cf4ce73e71a (diff)
downloaddotnet-vipps-ecommerce-9c440d7aa4a776be9051489a40944d779d032d96.tar.xz
dotnet-vipps-ecommerce-9c440d7aa4a776be9051489a40944d779d032d96.zip
add tests project, move configuration verification to VippsConfiguration.cs
Diffstat (limited to 'src/IOL.VippsEcommerce/Models')
-rw-r--r--src/IOL.VippsEcommerce/Models/VippsConfiguration.cs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/IOL.VippsEcommerce/Models/VippsConfiguration.cs b/src/IOL.VippsEcommerce/Models/VippsConfiguration.cs
index 4a78166..19ca140 100644
--- a/src/IOL.VippsEcommerce/Models/VippsConfiguration.cs
+++ b/src/IOL.VippsEcommerce/Models/VippsConfiguration.cs
@@ -122,6 +122,34 @@ namespace IOL.VippsEcommerce.Models
}
}
+ /// <summary>
+ /// Ensure that the configuration can be used to issue requests to the vipps api.
+ /// <exception cref="ArgumentNullException">Throws if a required value is null or whitespace.</exception>
+ /// </summary>
+ public void Verify() {
+ if (GetValue(VippsConfigurationKeyNames.VIPPS_API_URL).IsNullOrWhiteSpace()) {
+ throw new ArgumentNullException(VippsConfigurationKeyNames.VIPPS_API_URL,
+ "VippsEcommerceService: VIPPS_API_URL is not provided in configuration.");
+ }
+
+ if (GetValue(VippsConfigurationKeyNames.VIPPS_CLIENT_ID).IsNullOrWhiteSpace()) {
+ throw new ArgumentNullException(VippsConfigurationKeyNames.VIPPS_CLIENT_ID,
+ "VippsEcommerceService: VIPPS_CLIENT_ID is not provided in configuration.");
+ }
+
+ if (GetValue(VippsConfigurationKeyNames.VIPPS_CLIENT_SECRET).IsNullOrWhiteSpace()) {
+ throw new ArgumentNullException(VippsConfigurationKeyNames.VIPPS_CLIENT_SECRET,
+ "VippsEcommerceService: VIPPS_CLIENT_SECRET is not provided in configuration.");
+ }
+
+ if (GetValue(VippsConfigurationKeyNames.VIPPS_SUBSCRIPTION_KEY_PRIMARY).IsNullOrWhiteSpace()
+ && GetValue(VippsConfigurationKeyNames.VIPPS_SUBSCRIPTION_KEY_SECONDARY).IsNullOrWhiteSpace()) {
+ throw new ArgumentNullException(VippsConfigurationKeyNames.VIPPS_SUBSCRIPTION_KEY_PRIMARY
+ + VippsConfigurationKeyNames.VIPPS_SUBSCRIPTION_KEY_SECONDARY,
+ "VippsEcommerceService: Neither VIPPS_SUBSCRIPTION_KEY_PRIMARY nor VIPPS_SUBSCRIPTION_KEY_SECONDARY was provided in configuration.");
+ }
+ }
+
private string GetValueFromObject(string key) {
foreach (var prop in typeof(VippsConfiguration).GetProperties()) {
foreach (var attribute in prop.CustomAttributes) {