Skip to content

Commit a77005f

Browse files
authored
Nytt arkive klient (#230)
Nytt arkive klient
2 parents 487d4f6 + 9a36aa0 commit a77005f

File tree

19 files changed

+236
-37
lines changed

19 files changed

+236
-37
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ FakesAssemblies/
196196
*.opt
197197

198198
.idea
199+
.vscode
199200

200201
#######################
201202
# Ignore certificates #
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<IsPackable>false</IsPackable>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
9+
<PackageReference Include="xunit" Version="2.4.1" />
10+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
11+
</ItemGroup>
12+
13+
<ItemGroup>
14+
<ProjectReference Include="..\Digipost.Signature.Api.Client.Archive\Digipost.Signature.Api.Client.Archive.csproj" />
15+
<ProjectReference Include="..\Digipost.Signature.Api.Client.Core.Tests\Digipost.Signature.Api.Client.Core.Tests.csproj" />
16+
</ItemGroup>
17+
18+
</Project>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
using Digipost.Signature.Api.Client.Core;
2+
using Digipost.Signature.Api.Client.Core.Tests.Smoke;
3+
using Digipost.Signature.Api.Client.Core.Utilities;
4+
using Microsoft.Extensions.DependencyInjection;
5+
using Microsoft.Extensions.Logging;
6+
using Xunit;
7+
using static Digipost.Signature.Api.Client.Core.Tests.Utilities.CoreDomainUtility;
8+
9+
10+
namespace Digipost.Signature.Api.Client.Archive.Tests.Smoke
11+
{
12+
public class ArchiveSmokeTestsFixture : SmokeTests
13+
{
14+
public ArchiveSmokeTestsFixture()
15+
{
16+
TestHelper = new TestHelper(ArchiveClient(Endpoint));
17+
}
18+
19+
public TestHelper TestHelper { get; }
20+
21+
private static ArchiveClient ArchiveClient(Environment environment)
22+
{
23+
var serviceProvider = LoggingUtility.CreateServiceProviderAndSetUpLogging();
24+
25+
var clientConfig = new ClientConfiguration(environment, GetBringCertificate(), new Sender(BringPublicOrganizationNumber))
26+
{
27+
LogRequestAndResponse = true
28+
};
29+
var client = new ArchiveClient(clientConfig, serviceProvider.GetService<ILoggerFactory>());
30+
31+
return client;
32+
}
33+
}
34+
35+
public class ArchiveClientSmokeTests : IClassFixture<ArchiveSmokeTestsFixture>
36+
{
37+
public ArchiveClientSmokeTests(ArchiveSmokeTestsFixture fixture)
38+
{
39+
_fixture = fixture;
40+
}
41+
42+
private readonly ArchiveSmokeTestsFixture _fixture;
43+
44+
[Fact]
45+
public void download_pades_and_expect_error()
46+
{
47+
_fixture.TestHelper
48+
.Download_pades_and_expect_client_error();
49+
}
50+
}
51+
52+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System;
2+
using Digipost.Signature.Api.Client.Core.Exceptions;
3+
using Digipost.Signature.Api.Client.Core.Tests.Smoke;
4+
using Xunit;
5+
6+
namespace Digipost.Signature.Api.Client.Archive.Tests.Smoke
7+
{
8+
public class TestHelper : TestHelperBase
9+
{
10+
private readonly ArchiveClient _archiveClient;
11+
private readonly DocumentOwner _documentOwner;
12+
private readonly ArchivedDocumentId _document;
13+
14+
public TestHelper(ArchiveClient archiveClient)
15+
{
16+
_archiveClient = archiveClient;
17+
_documentOwner = new DocumentOwner(_archiveClient.ClientConfiguration.GlobalSender.OrganizationNumber);
18+
_document = new ArchivedDocumentId("1234");
19+
}
20+
21+
public TestHelper Get_PAdES()
22+
{
23+
var pades = _archiveClient.GetPades(_documentOwner, _document).Result;
24+
Assert.True(pades.CanRead);
25+
return this;
26+
}
27+
28+
public void Download_pades_and_expect_client_error()
29+
{
30+
var thrown = Assert.Throws<AggregateException>(() => Get_PAdES());
31+
var actualError = Assert.IsType<UnexpectedResponseException>(thrown.InnerException);
32+
Assert.Equal("ARCHIVED_DOCUMENT_NOT_FOUND", actualError.Error.Code);
33+
}
34+
}
35+
36+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System;
2+
using System.IO;
3+
using System.Threading.Tasks;
4+
using Digipost.Signature.Api.Client.Core;
5+
using Microsoft.Extensions.Logging;
6+
using Microsoft.Extensions.Logging.Abstractions;
7+
8+
namespace Digipost.Signature.Api.Client.Archive
9+
{
10+
public class ArchiveClient : BaseClient
11+
{
12+
private readonly ILogger<BaseClient> _logger;
13+
14+
public ArchiveClient(ClientConfiguration clientConfiguration)
15+
: this(clientConfiguration, new NullLoggerFactory())
16+
{
17+
}
18+
19+
public ArchiveClient(ClientConfiguration clientConfiguration, ILoggerFactory loggerFactory)
20+
: base(clientConfiguration, loggerFactory)
21+
{
22+
_logger = loggerFactory.CreateLogger<ArchiveClient>();
23+
}
24+
25+
public async Task<Stream> GetPades(DocumentOwner owner, ArchivedDocumentId id)
26+
{
27+
var uri = new Uri($"{ClientConfiguration.Environment.Url}api/{owner.OrganizationNumber}/archive/documents/{id.Value}/pades");
28+
return await RequestHelper.GetStream(uri).ConfigureAwait(false);
29+
}
30+
}
31+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace Digipost.Signature.Api.Client.Archive
2+
{
3+
public class ArchivedDocumentId
4+
{
5+
public ArchivedDocumentId(string documentId)
6+
{
7+
Value = documentId;
8+
}
9+
public string Value { get; }
10+
}
11+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<Title>Digipost Signature Api Client Archive</Title>
5+
<PackageId>Digipost.Signature.Api.Client.Archive</PackageId>
6+
</PropertyGroup>
7+
8+
9+
10+
<ItemGroup>
11+
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.0.*" />
12+
<PackageReference Include="System.Net.Requests" Version="4.*" />
13+
14+
<PackageReference Include="Digipost.Signature.Api.Client.Core" Version="6.*" />
15+
</ItemGroup>
16+
17+
<ItemGroup>
18+
<ProjectReference Include="..\Digipost.Signature.Api.Client.Core\Digipost.Signature.Api.Client.Core.csproj" />
19+
</ItemGroup>
20+
21+
</Project>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace Digipost.Signature.Api.Client.Archive
2+
{
3+
public class DocumentOwner
4+
{
5+
public DocumentOwner(string organizationNumber)
6+
{
7+
OrganizationNumber = organizationNumber;
8+
}
9+
10+
public string OrganizationNumber { get; }
11+
}
12+
}

Digipost.Signature.Api.Client.Core.Tests/Digipost.Signature.Api.Client.Core.Tests.csproj

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22
<ItemGroup>
33
<PackageReference Include="api-client-shared" Version="4.0.0" />
44
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="2.*" />
5-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
6-
<PackageReference Include="NLog" Version="4.6.7"/>
7-
<PackageReference Include="NLog.Extensions.Logging" Version="1.5.4"/>
5+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
6+
<PackageReference Include="NLog" Version="4.6.7" />
7+
<PackageReference Include="NLog.Extensions.Logging" Version="1.5.4" />
88
<PackageReference Include="xunit" Version="2.4.1" />
99
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
1010
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
11-
<PackageReference Include="CompareNETObjects" Version="4.62.0" />
12-
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
13-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.2.0" />
14-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.2.0" />
15-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0"/>
11+
<PackageReference Include="CompareNETObjects" Version="4.63.0" />
12+
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.0.0" />
13+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" />
14+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.0.0" />
15+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" />
1616
</ItemGroup>
1717

1818
<ItemGroup>
@@ -35,5 +35,8 @@
3535
<EmbeddedResource Include="Resources\**\*" />
3636
<EmbeddedResource Include="Schema\**\*" />
3737
</ItemGroup>
38+
<ItemGroup>
39+
<Compile Remove="Fakes\FakeHttpClientHandlerForPadesResponse.cs" />
40+
</ItemGroup>
3841

3942
</Project>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
using System.Reflection;
2-
using System.Runtime.CompilerServices;
1+
using System.Runtime.CompilerServices;
32
using System.Runtime.InteropServices;
43

54
[assembly: ComVisible(false)]
5+
[assembly: InternalsVisibleTo("Digipost.Signature.Api.Client.Archive.Tests")]
66
[assembly: InternalsVisibleTo("Digipost.Signature.Api.Client.Direct.Tests")]
77
[assembly: InternalsVisibleTo("Digipost.Signature.Api.Client.Portal.Tests")]

0 commit comments

Comments
 (0)