-
Notifications
You must be signed in to change notification settings - Fork 3
/
DirectClientSmokeTests.cs
123 lines (108 loc) · 4.41 KB
/
DirectClientSmokeTests.cs
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
using Digipost.Signature.Api.Client.Core;
using Digipost.Signature.Api.Client.Core.Enums;
using Digipost.Signature.Api.Client.Core.Identifier;
using Digipost.Signature.Api.Client.Core.Tests.Smoke;
using Digipost.Signature.Api.Client.Core.Tests.Utilities;
using Digipost.Signature.Api.Client.Direct.Enums;
using Xunit;
using static Digipost.Signature.Api.Client.Core.Tests.Utilities.CoreDomainUtility;
using static Digipost.Signature.Api.Client.Direct.Tests.Smoke.TestHelper;
namespace Digipost.Signature.Api.Client.Direct.Tests.Smoke
{
public class DirectSmokeTestsFixture : SmokeTests
{
public Sender Sender = new Sender(BringPublicOrganizationNumber);
public DirectSmokeTestsFixture()
{
TestHelper = new TestHelper(DirectClient(Endpoint));
}
public TestHelper TestHelper { get; set; }
private static DirectClient DirectClient(Environment environment)
{
var clientConfig = new ClientConfiguration(environment, GetBringCertificate(), new Sender(BringPublicOrganizationNumber))
{
LogRequestAndResponse = true
};
var client = new DirectClient(clientConfig);
return client;
}
}
public class DirectClientSmokeTests : IClassFixture<DirectSmokeTestsFixture>
{
public DirectClientSmokeTests(DirectSmokeTestsFixture fixture)
{
_fixture = fixture;
}
private readonly DirectSmokeTestsFixture _fixture;
[Fact]
public void Can_create_job_with_multiple_signers()
{
var signer1 = new PersonalIdentificationNumber("12345678910");
var signer2 = new PersonalIdentificationNumber("10987654321");
_fixture.TestHelper
.Create_direct_job(signer1, signer2)
.Sign_job(signer1)
.Get_status()
.Expect_job_to_have_status(
JobStatus.InProgress,
ExpectedSignerStatus(signer1, SignatureStatus.Signed),
ExpectedSignerStatus(signer2, SignatureStatus.Waiting)
)
.Get_XAdES(signer1)
.Sign_job(signer2)
.Get_status()
.Expect_job_to_have_status(
JobStatus.CompletedSuccessfully,
ExpectedSignerStatus(signer1, SignatureStatus.Signed),
ExpectedSignerStatus(signer2, SignatureStatus.Signed)
)
.Get_XAdES(signer2)
.Confirm_status();
}
[Fact]
public void Can_create_job_with_one_signer()
{
var signer = new PersonalIdentificationNumber("12345678910");
_fixture.TestHelper
.Create_direct_job(signer)
.Sign_job(signer)
.Get_status()
.Expect_job_to_have_status(
JobStatus.CompletedSuccessfully,
ExpectedSignerStatus(signer, SignatureStatus.Signed)
)
.Get_XAdES(signer)
.Get_PAdES()
.Confirm_status();
}
[Fact]
public void Can_retrieve_status_by_polling()
{
var signer = new PersonalIdentificationNumber("12345678910");
_fixture.TestHelper
.Create_pollable_direct_job(_fixture.Sender, signer)
.Sign_job(signer)
.Get_status_by_polling(_fixture.Sender)
.Expect_job_to_have_status(
JobStatus.CompletedSuccessfully,
ExpectedSignerStatus(signer, SignatureStatus.Signed)
)
.Get_XAdES(signer)
.Get_PAdES()
.Confirm_status();
}
[Fact]
public void create_job_with_queue()
{
var signer = new PersonalIdentificationNumber("12345678910");
var senderWithQueue = new Sender(BringPublicOrganizationNumber, new PollingQueue("CustomDirectPollingQueue"));
_fixture.TestHelper
.Create_pollable_direct_job(senderWithQueue, signer)
.Sign_job(signer)
.Get_status_by_polling(senderWithQueue)
.Expect_job_to_have_status(JobStatus.CompletedSuccessfully)
.Get_status_by_polling(senderWithQueue)
.Expect_job_to_have_status(JobStatus.NoChanges);
}
}
}