summaryrefslogtreecommitdiffstats
path: root/src/IOL.VippsEcommerce.Tests/Integration/InitialisationTests.cs
blob: 6035c1525b025576e6234ff707af1471f0243b58 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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<IVippsEcommerceService>();
			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<IVippsEcommerceService>();

			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);
			}
		}
	}
}