From 5c5ba05c49ff3bacfc5a29b21e3d9683e6396ad5 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sun, 4 Apr 2021 17:24:42 +0200 Subject: Make helper for getting test service --- src/IOL.VippsEcommerce.Tests/Helpers.cs | 22 +++++++ .../InitialisationTests.cs | 54 ++++++++++++++++ .../Integration/InitialisationTests.cs | 73 ---------------------- .../PaymentInitiationTests.cs | 13 ++++ 4 files changed, 89 insertions(+), 73 deletions(-) create mode 100644 src/IOL.VippsEcommerce.Tests/Helpers.cs create mode 100644 src/IOL.VippsEcommerce.Tests/InitialisationTests.cs delete mode 100644 src/IOL.VippsEcommerce.Tests/Integration/InitialisationTests.cs create mode 100644 src/IOL.VippsEcommerce.Tests/PaymentInitiationTests.cs (limited to 'src') diff --git a/src/IOL.VippsEcommerce.Tests/Helpers.cs b/src/IOL.VippsEcommerce.Tests/Helpers.cs new file mode 100644 index 0000000..9f89c1a --- /dev/null +++ b/src/IOL.VippsEcommerce.Tests/Helpers.cs @@ -0,0 +1,22 @@ +using System; +using IOL.VippsEcommerce.Models; +using Microsoft.Extensions.DependencyInjection; +using Xunit.Sdk; + +namespace IOL.VippsEcommerce.Tests +{ + public static class Helpers + { + public static IVippsEcommerceService GetVippsEcommerceService(Action conf) { + var services = new ServiceCollection(); + services.AddVippsEcommerceService(conf); + var provider = services.BuildServiceProvider(); + var vippsEcommerceService = provider.GetService(); + if (vippsEcommerceService == default) { + throw new NullException(nameof(vippsEcommerceService)); + } + + return vippsEcommerceService; + } + } +} \ No newline at end of file diff --git a/src/IOL.VippsEcommerce.Tests/InitialisationTests.cs b/src/IOL.VippsEcommerce.Tests/InitialisationTests.cs new file mode 100644 index 0000000..aa05a7d --- /dev/null +++ b/src/IOL.VippsEcommerce.Tests/InitialisationTests.cs @@ -0,0 +1,54 @@ +using IOL.VippsEcommerce.Models; +using Microsoft.Extensions.DependencyInjection; +using Xunit; +using Xunit.Abstractions; + +namespace IOL.VippsEcommerce.Tests +{ + public class InitialisationTests + { + private readonly ITestOutputHelper _helper; + + public InitialisationTests(ITestOutputHelper helper) { + _helper = helper; + } + + [Fact] + public void Succeed_On_Valid_Minimal_Configuration() { + var vippsEcommerceService = Helpers.GetVippsEcommerceService(o => { + o.ApiUrl = "https://validuri.no"; + o.ClientId = "asdf"; + o.ClientSecret = "asdf"; + o.SecondarySubscriptionKey = "asdf"; + }); + + vippsEcommerceService.Configuration.Verify(); + } + + [Fact] + public void Configuration_Follows_Through_Initialisation() { + var vippsEcommerceService = Helpers.GetVippsEcommerceService(o => { + o.ApiUrl = "https://validuri.no"; + o.ClientId = "asdf"; + o.ClientSecret = "asdf"; + o.SecondarySubscriptionKey = "asdf"; + o.PrimarySubscriptionKey = "asdf"; + o.SystemName = "asdf"; + o.SystemVersion = "asdf"; + o.SystemPluginName = "asdf"; + o.SystemPluginVersion = "asdf"; + o.MerchantSerialNumber = "asdf"; + o.CacheDirectoryPath = "asdf"; + o.CacheEncryptionKey = "asdf"; + o.ConfigurationMode = VippsConfigurationMode.ONLY_OBJECT; + }); + + foreach (var prop in typeof(VippsConfiguration).GetProperties()) { + var value = prop.GetValue(vippsEcommerceService.Configuration, null); + _helper.WriteLine(prop.Name); + _helper.WriteLine(value?.ToString() ?? "EMPTY"); + Assert.False(value == default); + } + } + } +} \ No newline at end of file diff --git a/src/IOL.VippsEcommerce.Tests/Integration/InitialisationTests.cs b/src/IOL.VippsEcommerce.Tests/Integration/InitialisationTests.cs deleted file mode 100644 index 6035c15..0000000 --- a/src/IOL.VippsEcommerce.Tests/Integration/InitialisationTests.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System.Collections.Generic; -using System.Text.Json; -using IOL.VippsEcommerce.Models; -using Microsoft.Extensions.DependencyInjection; -using Xunit; -using Xunit.Abstractions; - -namespace IOL.VippsEcommerce.Tests.Integration -{ - public class InitialisationTests - { - private readonly ITestOutputHelper _helper; - - public InitialisationTests(ITestOutputHelper helper) { - _helper = helper; - } - - [Fact] - public void Succeed_On_Valid_Minimal_Configuration() { - var services = new ServiceCollection(); - services.AddVippsEcommerceService(o => { - o.ApiUrl = "https://validuri.no"; - o.ClientId = "asdf"; - o.ClientSecret = "asdf"; - o.SecondarySubscriptionKey = "asdf"; - }); - var provider = services.BuildServiceProvider(); - var vippsEcommerceService = provider.GetService(); - if (vippsEcommerceService == default) { - _helper.WriteLine(nameof(IVippsEcommerceService) + " was default"); - return; - } - - vippsEcommerceService.Configuration.Verify(); - Assert.True(true); - } - - - [Fact] - public void Configuration_Follows_Through_Initialisation() { - var services = new ServiceCollection(); - services.AddVippsEcommerceService(o => { - o.ApiUrl = "https://validuri.no"; - o.ClientId = "asdf"; - o.ClientSecret = "asdf"; - o.SecondarySubscriptionKey = "asdf"; - o.PrimarySubscriptionKey = "asdf"; - o.SystemName = "asdf"; - o.SystemVersion = "asdf"; - o.SystemPluginName = "asdf"; - o.SystemPluginVersion = "asdf"; - o.MerchantSerialNumber = "asdf"; - o.CacheDirectoryPath = "asdf"; - o.CacheEncryptionKey = "asdf"; - o.ConfigurationMode = VippsConfigurationMode.ONLY_OBJECT; - }); - var provider = services.BuildServiceProvider(); - var vippsEcommerceService = provider.GetService(); - - if (vippsEcommerceService == default) { - _helper.WriteLine(nameof(IVippsEcommerceService) + " was default"); - return; - } - - foreach (var prop in typeof(VippsConfiguration).GetProperties()) { - var value = prop.GetValue(vippsEcommerceService.Configuration, null); - _helper.WriteLine(prop.Name); - _helper.WriteLine(value?.ToString() ?? "EMPTY"); - Assert.False(value == default); - } - } - } -} \ No newline at end of file diff --git a/src/IOL.VippsEcommerce.Tests/PaymentInitiationTests.cs b/src/IOL.VippsEcommerce.Tests/PaymentInitiationTests.cs new file mode 100644 index 0000000..d802fb1 --- /dev/null +++ b/src/IOL.VippsEcommerce.Tests/PaymentInitiationTests.cs @@ -0,0 +1,13 @@ +using Xunit.Abstractions; + +namespace IOL.VippsEcommerce.Tests +{ + public class PaymentInitiationTests + { + private readonly ITestOutputHelper _helper; + + public PaymentInitiationTests(ITestOutputHelper helper) { + _helper = helper; + } + } +} \ No newline at end of file -- cgit v1.3