diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 1128516..21f6245 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -47,11 +47,10 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
-
+
resharper:
name: Resharper
runs-on: ubuntu-latest
- if: false #ReSharper currently does not support .NET 7
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/setup-dotnet@v3.0.3
@@ -62,5 +61,5 @@ jobs:
uses: VMelnalksnis/resharper-inspect-action@v0.2.5
with:
solution: NordigenDotNet.sln
- resharper-version: 2022.1.2
+ resharper-version: 2022.3.0-eap09
treat-warnings-as-errors: true
diff --git a/source/VMelnalksnis.NordigenDotNet/Requisitions/Requisition.cs b/source/VMelnalksnis.NordigenDotNet/Requisitions/Requisition.cs
index 03f1b74..7b376ec 100644
--- a/source/VMelnalksnis.NordigenDotNet/Requisitions/Requisition.cs
+++ b/source/VMelnalksnis.NordigenDotNet/Requisitions/Requisition.cs
@@ -52,7 +52,7 @@ public record Requisition
/// Gets the end-user-agreement of this requisition.
[JsonIgnore]
- public Guid? Agreement => string.IsNullOrWhiteSpace(AgreementValue) ? null : Guid.Parse(AgreementValue);
+ public Guid? Agreement => string.IsNullOrWhiteSpace(AgreementValue) ? null : Guid.Parse(AgreementValue!);
/// Gets or sets a two-letter country code (ISO 639-1).
[JsonPropertyName("user_language")]
diff --git a/source/VMelnalksnis.NordigenDotNet/Serialization/NordigenSerializationContext.cs b/source/VMelnalksnis.NordigenDotNet/Serialization/NordigenSerializationContext.cs
index b46b8a8..1d92dc3 100644
--- a/source/VMelnalksnis.NordigenDotNet/Serialization/NordigenSerializationContext.cs
+++ b/source/VMelnalksnis.NordigenDotNet/Serialization/NordigenSerializationContext.cs
@@ -12,7 +12,7 @@ using VMelnalksnis.NordigenDotNet.Requisitions;
namespace VMelnalksnis.NordigenDotNet.Serialization;
-///
+///
[JsonSourceGenerationOptions(GenerationMode = JsonSourceGenerationMode.Metadata, IgnoreReadOnlyProperties = true)]
[JsonSerializable(typeof(Account))]
[JsonSerializable(typeof(AccountDetailsWrapper))]
diff --git a/source/VMelnalksnis.NordigenDotNet/Tokens/TokenSerializationContext.cs b/source/VMelnalksnis.NordigenDotNet/Tokens/TokenSerializationContext.cs
index 7de9286..968778f 100644
--- a/source/VMelnalksnis.NordigenDotNet/Tokens/TokenSerializationContext.cs
+++ b/source/VMelnalksnis.NordigenDotNet/Tokens/TokenSerializationContext.cs
@@ -6,7 +6,7 @@ using System.Text.Json.Serialization;
namespace VMelnalksnis.NordigenDotNet.Tokens;
-///
+///
[JsonSerializable(typeof(AccessToken))]
[JsonSerializable(typeof(Token))]
[JsonSerializable(typeof(TokenCreation))]
diff --git a/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Accounts/AccountClientTests.cs b/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Accounts/AccountClientTests.cs
index 0a1257f..854d1ae 100644
--- a/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Accounts/AccountClientTests.cs
+++ b/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Accounts/AccountClientTests.cs
@@ -2,6 +2,7 @@
// Licensed under the Apache License 2.0.
// See LICENSE file in the project root for full license information.
+using System;
using System.Linq;
using System.Threading.Tasks;
@@ -15,31 +16,35 @@ using static VMelnalksnis.NordigenDotNet.Tests.Integration.ServiceProviderFixtur
namespace VMelnalksnis.NordigenDotNet.Tests.Integration.Accounts;
-public sealed class AccountClientTests : IClassFixture
+public sealed class AccountClientTests : IClassFixture, IAsyncLifetime
{
private readonly ITestOutputHelper _testOutputHelper;
private readonly INordigenClient _nordigenClient;
- private readonly Requisition _requisition;
+ private Requisition _requisition = null!;
+ private Guid _accountId;
public AccountClientTests(ITestOutputHelper testOutputHelper, ServiceProviderFixture serviceProviderFixture)
{
_testOutputHelper = testOutputHelper;
_nordigenClient = serviceProviderFixture.GetNordigenClient(testOutputHelper);
+ }
- _requisition = GetRequisition().GetAwaiter().GetResult();
+ public async Task InitializeAsync()
+ {
+ _requisition = await GetRequisition();
+ _accountId = _requisition.Accounts.OrderBy(guid => guid).First();
}
[Fact]
public async Task Get_ShouldReturnExpected()
{
_requisition.Accounts.Should().HaveCount(2);
- var id = _requisition.Accounts.First();
- var account = await _nordigenClient.Accounts.Get(id);
+ var account = await _nordigenClient.Accounts.Get(_accountId);
var currentInstant = SystemClock.Instance.GetCurrentInstant();
using (new AssertionScope())
{
- account.Id.Should().Be(id);
+ account.Id.Should().Be(_accountId);
account.Created.Should().BeLessThan(account.LastAccessed).And.BeLessThan(currentInstant);
account.LastAccessed.Should().BeGreaterThan(currentInstant - Duration.FromMinutes(1));
account.Iban.Should().Be("GL3343697694912188");
@@ -51,9 +56,7 @@ public sealed class AccountClientTests : IClassFixture
[Fact]
public async Task GetDetails_ShouldReturnExpected()
{
- var id = _requisition.Accounts.First();
-
- var accountDetails = await _nordigenClient.Accounts.GetDetails(id);
+ var accountDetails = await _nordigenClient.Accounts.GetDetails(_accountId);
using (new AssertionScope())
{
@@ -70,9 +73,7 @@ public sealed class AccountClientTests : IClassFixture
[Fact]
public async Task GetBalances_ShouldReturnExpected()
{
- var id = _requisition.Accounts.First();
-
- var balances = await _nordigenClient.Accounts.GetBalances(id);
+ var balances = await _nordigenClient.Accounts.GetBalances(_accountId);
balances.Should().HaveCount(2);
@@ -89,16 +90,14 @@ public sealed class AccountClientTests : IClassFixture
[Fact]
public async Task GetTransactions_ShouldReturnExpected()
{
- var id = _requisition.Accounts.First();
-
var currentInstant = SystemClock.Instance.GetCurrentInstant();
var currentZone = DateTimeZoneProviders.Tzdb.GetSystemDefault();
var currentDate = currentInstant.InZone(currentZone).Date;
var dateTo = currentInstant;
var dateFrom = dateTo - Duration.FromDays(7);
- var transactions = await _nordigenClient.Accounts.GetTransactions(id, new Interval(dateFrom, dateTo));
- var allTransactions = await _nordigenClient.Accounts.GetTransactions(id);
+ var transactions = await _nordigenClient.Accounts.GetTransactions(_accountId, new Interval(dateFrom, dateTo));
+ var allTransactions = await _nordigenClient.Accounts.GetTransactions(_accountId);
using (new AssertionScope())
{
@@ -131,11 +130,12 @@ public sealed class AccountClientTests : IClassFixture
}
}
+ public Task DisposeAsync() => Task.CompletedTask;
+
private async Task GetRequisition()
{
var requisition = await _nordigenClient.Requisitions.Get().SingleOrDefaultAsync(r =>
- r.InstitutionId is IntegrationInstitutionId &&
- r.Status is RequisitionStatus.Ln);
+ r is { InstitutionId: IntegrationInstitutionId, Status: RequisitionStatus.Ln });
if (requisition is not null)
{
diff --git a/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Requisitions/RequisitionsClientTests.cs b/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Requisitions/RequisitionsClientTests.cs
index 97e8f3c..81bcf10 100644
--- a/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Requisitions/RequisitionsClientTests.cs
+++ b/tests/VMelnalksnis.NordigenDotNet.Tests.Integration/Requisitions/RequisitionsClientTests.cs
@@ -4,7 +4,6 @@
using System.Collections.Generic;
using System.Linq;
-using System.Net;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
@@ -15,6 +14,10 @@ using VMelnalksnis.NordigenDotNet.Requisitions;
using Xunit.Abstractions;
+#if NET6_0_OR_GREATER
+using System.Net;
+#endif
+
using static VMelnalksnis.NordigenDotNet.Tests.Integration.ServiceProviderFixture;
namespace VMelnalksnis.NordigenDotNet.Tests.Integration.Requisitions;