Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lagt til klientMeldingId #73

Merged
merged 21 commits into from
Feb 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d26f4fd
Lagt til klientMeldingId
jarleborsheim Jan 27, 2022
51cca47
Lagt til optional klientMeldingId
jarleborsheim Feb 3, 2022
d0e12ed
Oppdatert etter fiks på send.client
jarleborsheim Feb 3, 2022
4375ef4
Korrigert MeldingRequest til at KlientMeldingId skal ikke være requir…
jarleborsheim Feb 7, 2022
9750b11
KlienMeldingId korrekt optional på SvarSender også
jarleborsheim Feb 7, 2022
e1321f8
Fikset interface
jarleborsheim Feb 7, 2022
81e0422
Tatt bort using som ikke er i bruk
jarleborsheim Feb 8, 2022
93e3b1a
Mapper klientMeldingId til header i stedet for å være egen property
jarleborsheim Feb 9, 2022
f3aa628
Erstattet med const
jarleborsheim Feb 9, 2022
520e2d1
Bumpet til release av fiks-io-send-client
jarleborsheim Feb 9, 2022
3a388a4
Unit tests for FromSentMessageApiModel
jarleborsheim Feb 9, 2022
20b27af
Tatt bort auto generering av klientMeldingId på svar
jarleborsheim Feb 9, 2022
b77719f
Ny unit-test for MeldingRequest
jarleborsheim Feb 9, 2022
9527467
Logger feilmelding hvis KlientMeldingId ikke var på Guid format
jarleborsheim Feb 11, 2022
fa9a80a
Endret til ilogger
jarleborsheim Feb 13, 2022
5b3ba06
Merge branch 'master' into jb-klientMeldingId
jarleborsheim Feb 14, 2022
b0113c8
Tatt bort logging
jarleborsheim Feb 14, 2022
8d6479e
Merge
jarleborsheim Feb 14, 2022
533f616
TryParse guid
jarleborsheim Feb 14, 2022
e98bac0
Lagt til flere tester
jarleborsheim Feb 14, 2022
50e3d7b
Returner null hvis klientMeldingId var null og guid.empty hvis parsin…
jarleborsheim Feb 15, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions KS.Fiks.IO.Client.Tests/FiksIOClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ public async Task SendReturnsExpectedSentMessage()
{
var expectedMessage = new SendtMelding(
meldingId: Guid.NewGuid(),
Guid.NewGuid(),
meldingType: "msgType",
avsenderKontoId: Guid.NewGuid(),
mottakerKontoId: Guid.NewGuid(),
Expand Down
4 changes: 2 additions & 2 deletions KS.Fiks.IO.Client.Tests/KS.Fiks.IO.Client.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
<PackageReference Include="FluentAssertions" Version="5.10.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="KS.Fiks.ASiC-E" Version="1.0.3" />
<PackageReference Include="KS.Fiks.IO.Send.Client" Version="1.0.7" />
<PackageReference Include="KS.Fiks.Maskinporten.Client" Version="1.0.7" />
<PackageReference Include="KS.Fiks.IO.Send.Client" Version="1.0.8" />
<PackageReference Include="KS.Fiks.Maskinporten.Client" Version="1.1.1" />
<PackageReference Include="Moq" Version="4.16.1" />
<PackageReference Include="Newtonsoft.Json" Version="[11.0.1, 13.0.1]" />
<PackageReference Include="Newtonsoft.Json.Schema" Version="2.0.13" />
Expand Down
34 changes: 34 additions & 0 deletions KS.Fiks.IO.Client.Tests/Models/MeldingRequestTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System;
using FluentAssertions;
using KS.Fiks.IO.Client.Models;
using Xunit;

namespace KS.Fiks.IO.Client.Tests.Models
{
public class MeldingRequestTests
{
[Fact]
public void FromMeldingRequestToApiModelNullKlientModelIdShouldBeEmptyHeadere()
{
var result = new MeldingRequest(
Guid.NewGuid(),
Guid.NewGuid(),
"meldingType").ToApiModel();
result.Headere.Should().BeEmpty();
}

[Fact]
public void FromMeldingRequestToApiModelWithKlientModelIdShouldBeInHeadere()
{
var klientMeldingId = Guid.NewGuid();
var result = new MeldingRequest(
Guid.NewGuid(),
Guid.NewGuid(),
"meldingType",
klientMeldingId: klientMeldingId).ToApiModel();
result.Headere.Should().NotBeEmpty();
result.Headere.ContainsKey(MeldingBase.headerKlientMeldingId).Should().BeTrue();
result.Headere.ContainsValue(klientMeldingId.ToString()).Should().BeTrue();
}
}
}
48 changes: 48 additions & 0 deletions KS.Fiks.IO.Client.Tests/Models/MottattMeldingTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using FluentAssertions;
using KS.Fiks.IO.Client.Models;
using KS.Fiks.IO.Send.Client.Models;
using Xunit;

namespace KS.Fiks.IO.Client.Tests.Models
{
public class MottattMeldingTests
{
[Fact]
public void TestKlientMeldingIdIsExtractedFromHeaderWhenGuid()
{
var klientMeldingId = Guid.NewGuid();
var headere = new Dictionary<string, string>() {{ MeldingBase.headerKlientMeldingId, klientMeldingId.ToString() }};
var mottattMelding = new MottattMelding(false,
new MottattMeldingMetadata(Guid.NewGuid(), "meldingtype", Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(),
TimeSpan.Zero, headere), null, null, null);

mottattMelding.KlientMeldingId.Should().Be(klientMeldingId);
}

[Fact]
public void TestKlientMeldingIdIsGuidEmptyWhenNotAGuid()
{
var klientMeldingId = "dette er ikke en guid";
var headere = new Dictionary<string, string>() {{ MeldingBase.headerKlientMeldingId, klientMeldingId }};
var mottattMelding = new MottattMelding(false,
new MottattMeldingMetadata(Guid.NewGuid(), "meldingtype", Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(),
TimeSpan.Zero, headere), null, null, null);

mottattMelding.KlientMeldingId.Should().Be(Guid.Empty);
mottattMelding.Headere.Values.Should().Contain(klientMeldingId);
}

[Fact]
public void TestKlientMeldingIdIsGuidEmptyWhenWithoutHeadere()
{
var mottattMelding = new MottattMelding(false,
new MottattMeldingMetadata(Guid.NewGuid(), "meldingtype", Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(),
TimeSpan.Zero, null), null, null, null);

mottattMelding.KlientMeldingId.Should().BeNull();
}
}
}
71 changes: 71 additions & 0 deletions KS.Fiks.IO.Client.Tests/Models/SendtMeldingTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using FluentAssertions;
using KS.Fiks.IO.Client.Models;
using KS.Fiks.IO.Send.Client.Models;
using Xunit;

namespace KS.Fiks.IO.Client.Tests.Models
{
public class SendtMeldingTests
{
[Fact]
public void FromSentMessageApiModelWithNullHeadere()
{
var result = SendtMelding.FromSentMessageApiModel(
new SendtMeldingApiModel()
{
SvarPaMelding = Guid.NewGuid(),
AvsenderKontoId = Guid.NewGuid(),
DokumentlagerId = Guid.NewGuid(),
Headere = null,
MeldingId = Guid.NewGuid(),
MeldingType = "EnMeldingType",
MottakerKontoId = Guid.NewGuid(),
Ttl = 1000L
});

result.KlientMeldingId.Should().BeNull();
}

[Fact]
public void FromSentMessageApiModelWithEmptyHeadereDictionaryKlientMeldingShouldBeNull()
{
var result = SendtMelding.FromSentMessageApiModel(
new SendtMeldingApiModel()
{
SvarPaMelding = Guid.NewGuid(),
AvsenderKontoId = Guid.NewGuid(),
DokumentlagerId = Guid.NewGuid(),
Headere = new Dictionary<string, string>(),
MeldingId = Guid.NewGuid(),
MeldingType = "EnMeldingType",
MottakerKontoId = Guid.NewGuid(),
Ttl = 1000L
});

result.KlientMeldingId.Should().BeNull();
}

[Fact]
public void FromSentMessageApiModelWithKlientMeldingId()
{
var klientMeldingId = Guid.NewGuid();
var result = SendtMelding.FromSentMessageApiModel(
new SendtMeldingApiModel()
{
SvarPaMelding = Guid.NewGuid(),
AvsenderKontoId = Guid.NewGuid(),
DokumentlagerId = Guid.NewGuid(),
Headere = new Dictionary<string, string>() {{ MeldingBase.headerKlientMeldingId, klientMeldingId.ToString() }},
MeldingId = Guid.NewGuid(),
MeldingType = "EnMeldingType",
MottakerKontoId = Guid.NewGuid(),
Ttl = 1000L
});

result.KlientMeldingId.Should().NotBeNull();
result.KlientMeldingId.Should().Be(klientMeldingId.ToString());
}
}
}
5 changes: 5 additions & 0 deletions KS.Fiks.IO.Client.Tests/Send/SendHandlerFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ public SendHandlerFixture()
Guid.NewGuid(),
"defaultType");

public MeldingRequest DefaultRequest2 => new MeldingRequest(
Guid.NewGuid(),
Guid.NewGuid(),
"defaultType", TimeSpan.Zero, new Dictionary<string, string> {});

public SendHandlerFixture WithPublicKey(X509Certificate publicKey)
{
_publicKey = publicKey;
Expand Down
33 changes: 31 additions & 2 deletions KS.Fiks.IO.Client.Tests/Send/SendHandlerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,14 @@ public async Task CallsFiksIOSenderSend()
}

[Fact]
public async Task CallsSendWithExpectedMessageSpecificationApiModel()
public async Task CallsSendWithExpectedMessageSpecificationApiModelWithKlientMeldingId()
{
var sut = _fixture.CreateSut();

var request = new MeldingRequest(
avsenderKontoId: Guid.NewGuid(),
mottakerKontoId: Guid.NewGuid(),
klientMeldingId: Guid.NewGuid(),
meldingType: "Meldingsprotokoll",
ttl: TimeSpan.FromDays(2),
headere: null,
Expand All @@ -54,7 +55,35 @@ public async Task CallsSendWithExpectedMessageSpecificationApiModel()
model => model.Ttl == (long)request.Ttl.TotalMilliseconds &&
model.SvarPaMelding == request.SvarPaMelding &&
model.AvsenderKontoId == request.AvsenderKontoId &&
model.MottakerKontoId == request.MottakerKontoId),
model.MottakerKontoId == request.MottakerKontoId &&
model.Headere[MeldingBase.headerKlientMeldingId] == request.KlientMeldingId.ToString()),
It.IsAny<Stream>()));
}

[Fact]
public async Task CallsSendWithExpectedMessageSpecificationApiModelAndNullKlientMeldingId()
{
var sut = _fixture.CreateSut();

var request = new MeldingRequest(
avsenderKontoId: Guid.NewGuid(),
mottakerKontoId: Guid.NewGuid(),
meldingType: "Meldingsprotokoll",
ttl: TimeSpan.FromDays(2),
headere: null,
svarPaMelding: Guid.NewGuid());

var payload = new List<IPayload>();

await sut.Send(request, payload).ConfigureAwait(false);

_fixture.FiksIOSenderMock.Verify(_ => _.Send(
It.Is<MeldingSpesifikasjonApiModel>(
model => model.Ttl == (long)request.Ttl.TotalMilliseconds &&
model.SvarPaMelding == request.SvarPaMelding &&
model.AvsenderKontoId == request.AvsenderKontoId &&
model.MottakerKontoId == request.MottakerKontoId &&
!model.Headere.ContainsKey("klientMeldingId")),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bruk konstant i stedet for String litteral

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

damnit
Glemte den 1 sted ja. Good catch!

It.IsAny<Stream>()));
}

Expand Down
5 changes: 2 additions & 3 deletions KS.Fiks.IO.Client.Tests/Send/SvarSenderFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,13 @@ public SvarSenderFixture WithNackRequeue(Action nackRequeue)
internal SvarSender CreateSut()
{
SetupMocks();
return new SvarSender(SendHandlerMock.Object, _mottattMelding,
new AmqpAcknowledgeManager(_ack, _nack, _nackWithRequeue));
return new SvarSender(SendHandlerMock.Object, _mottattMelding, new AmqpAcknowledgeManager(_ack, _nack, _nackWithRequeue));
}

private void SetupMocks()
{
SendHandlerMock.Setup(_ => _.Send(It.IsAny<MeldingRequest>(), It.IsAny<IPayload[]>()))
.ReturnsAsync(new SendtMelding(Guid.NewGuid(), "sendtMelding", Guid.NewGuid(), Guid.NewGuid(),
.ReturnsAsync(new SendtMelding(Guid.NewGuid(), Guid.NewGuid(), "sendtMelding", Guid.NewGuid(), Guid.NewGuid(),
TimeSpan.Zero, null));
}
}
Expand Down
54 changes: 53 additions & 1 deletion KS.Fiks.IO.Client.Tests/Send/SvarSenderTests.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using FluentAssertions;
using KS.Fiks.IO.Client.Models;
using Moq;
using Xunit;
Expand All @@ -17,7 +18,7 @@ public SvarSenderTests()
}

[Fact]
public async Task SendsToAvsenderWithMotakerAsAvsender()
public async Task SendsToAvsenderWithMottakerAsAvsender()
{
var meldingId = Guid.NewGuid();
var mottakerKonto = Guid.NewGuid();
Expand All @@ -30,7 +31,58 @@ public async Task SendsToAvsenderWithMotakerAsAvsender()
await sut.Svar("testType").ConfigureAwait(false);

_fixture.SendHandlerMock.Verify(_ => _.Send(It.Is<MeldingRequest>(a => a.MottakerKontoId == avsenderKonto && a.AvsenderKontoId == mottakerKonto), It.IsAny<IList<IPayload>>()));
}

[Fact]
public async Task SendsToAvsenderWithKlientMeldindId()
{
var meldingId = Guid.NewGuid();
var mottakerKonto = Guid.NewGuid();
var avsenderKonto = Guid.NewGuid();
var klientMeldingId = Guid.NewGuid();

var headere = new Dictionary<string, string>() {{ MeldingBase.headerKlientMeldingId, klientMeldingId.ToString() }};

var motattMelding = new MottattMelding(hasPayload: true, metadata: new MottattMeldingMetadata(meldingId, "testType", mottakerKonto, avsenderKonto, null, TimeSpan.FromDays(1), headere), streamProvider: _fixture.DefaultStreamProvider, decrypter: _fixture.DefaultDecrypter, fileWriter: _fixture.DefaultFileWriter);

var sut = _fixture.WithMottattMelding(motattMelding).CreateSut();

await sut.Svar("testType", klientMeldingId).ConfigureAwait(false);

_fixture.SendHandlerMock.Verify(_ => _.Send(It.Is<MeldingRequest>(a => a.MottakerKontoId == avsenderKonto && a.AvsenderKontoId == mottakerKonto && a.KlientMeldingId == klientMeldingId), It.IsAny<IList<IPayload>>()));
}

[Fact]
public async Task SendsToAvsenderWithMottakerAsAvsenderAndWithKlientMeldingId()
{
var meldingId = Guid.NewGuid();
var mottakerKonto = Guid.NewGuid();
var avsenderKonto = Guid.NewGuid();
var klientMeldingId = Guid.NewGuid();

var motattMelding = new MottattMelding(hasPayload: true, metadata: new MottattMeldingMetadata(meldingId, "testType", mottakerKonto, avsenderKonto, null, TimeSpan.FromDays(1), null), streamProvider: _fixture.DefaultStreamProvider, decrypter: _fixture.DefaultDecrypter, fileWriter: _fixture.DefaultFileWriter);

var sut = _fixture.WithMottattMelding(motattMelding).CreateSut();

await sut.Svar("testType", "my message", "message.txt", klientMeldingId).ConfigureAwait(false);

_fixture.SendHandlerMock.Verify(_ => _.Send(It.Is<MeldingRequest>(a => a.MottakerKontoId == avsenderKonto && a.AvsenderKontoId == mottakerKonto), It.IsAny<IList<IPayload>>()));
}

[Fact]
public async Task SendsToAvsenderWithMottakerAsAvsenderAndWithOptionalNullKlientMeldingId()
{
var meldingId = Guid.NewGuid();
var mottakerKonto = Guid.NewGuid();
var avsenderKonto = Guid.NewGuid();

var motattMelding = new MottattMelding(hasPayload: true, metadata: new MottattMeldingMetadata(meldingId, "testType", mottakerKonto, avsenderKonto, null, TimeSpan.FromDays(1), null), streamProvider: _fixture.DefaultStreamProvider, decrypter: _fixture.DefaultDecrypter, fileWriter: _fixture.DefaultFileWriter);

var sut = _fixture.WithMottattMelding(motattMelding).CreateSut();

await sut.Svar("testType", "my message", "message.txt").ConfigureAwait(false);

_fixture.SendHandlerMock.Verify(_ => _.Send(It.Is<MeldingRequest>(a => a.MottakerKontoId == avsenderKonto && a.AvsenderKontoId == mottakerKonto && a.KlientMeldingId == null), It.IsAny<IList<IPayload>>()));
}
}
}
4 changes: 2 additions & 2 deletions KS.Fiks.IO.Client/KS.Fiks.IO.Client.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@
<ItemGroup>
<PackageReference Include="KS.Fiks.ASiC-E" Version="1.0.3" />
<PackageReference Include="KS.Fiks.Crypto" Version="1.0.4" />
<PackageReference Include="KS.Fiks.IO.Send.Client" Version="1.0.7" />
<PackageReference Include="KS.Fiks.Maskinporten.Client" Version="1.0.7" />
<PackageReference Include="KS.Fiks.IO.Send.Client" Version="1.0.8" />
<PackageReference Include="KS.Fiks.Maskinporten.Client" Version="1.1.1" />
<PackageReference Include="RabbitMQ.Client" Version="6.2.1" />
<PackageReference Include="Newtonsoft.Json" Version="[11.0.1, 13.0.1]" />
<PackageReference Include="KS.Fiks.QA" Version="1.0.0" PrivateAssets="All" />
Expand Down
2 changes: 2 additions & 0 deletions KS.Fiks.IO.Client/Models/IMelding.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ public interface IMelding
{
Guid MeldingId { get; }

Guid? KlientMeldingId { get; }

string MeldingType { get; }

Guid AvsenderKontoId { get; }
Expand Down
Loading