Skip to content

Commit 44e29da

Browse files
committed
Add more tests
1 parent 8b90661 commit 44e29da

File tree

9 files changed

+1417
-140
lines changed

9 files changed

+1417
-140
lines changed

src/Altinn.App.Core/Internal/Texts/TranslationService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ await state.GetModelData(binding, context?.DataElementIdentifier, context?.RowIn
262262
if (_appMetadata is not null)
263263
{
264264
var appMetadata = await _appMetadata.GetApplicationMetadata();
265-
if (appMetadata?.Title.Count > 0)
265+
if (appMetadata?.Title?.Count > 0)
266266
{
267267
return appMetadata.Title.TryGetValue(language, out var title)
268268
? new TextResourceElement() { Id = "appName", Value = title }

test/Altinn.App.Api.Tests/Controllers/InstancesControllerFixture.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -112,27 +112,27 @@ internal static InstancesControllerFixture Create(Authenticated? auth = null)
112112
services.AddOptions<AppSettings>().Configure(_ => { });
113113
services.AddAppImplementationFactory();
114114

115-
services.AddSingleton(new Mock<IAltinnPartyClient>().Object);
116-
services.AddSingleton(new Mock<IRegisterClient>().Object);
117-
services.AddSingleton(new Mock<IInstanceClient>().Object);
118-
services.AddSingleton(new Mock<IDataClient>().Object);
119-
services.AddSingleton(new Mock<IAppMetadata>().Object);
120-
services.AddSingleton(new Mock<IAppModel>().Object);
121-
services.AddSingleton(new Mock<IInstantiationProcessor>().Object);
122-
services.AddSingleton(new Mock<IInstantiationValidator>().Object);
123-
services.AddSingleton(new Mock<IPDP>().Object);
124-
services.AddSingleton(new Mock<IEventsClient>().Object);
125-
services.AddSingleton(new Mock<IPrefill>().Object);
126-
services.AddSingleton(new Mock<IProfileClient>().Object);
127-
services.AddSingleton(new Mock<IProcessEngine>().Object);
128-
services.AddSingleton(new Mock<IOrganizationClient>().Object);
129-
services.AddSingleton(new Mock<IHostEnvironment>().Object);
130-
services.AddSingleton(new Mock<IValidationService>().Object);
131-
services.AddSingleton(new Mock<ITranslationService>().Object);
132-
services.AddSingleton(new Mock<IDataElementAccessChecker>().Object);
115+
services.AddSingleton(new Mock<IAltinnPartyClient>(MockBehavior.Strict).Object);
116+
services.AddSingleton(new Mock<IRegisterClient>(MockBehavior.Strict).Object);
117+
services.AddSingleton(new Mock<IInstanceClient>(MockBehavior.Strict).Object);
118+
services.AddSingleton(new Mock<IDataClient>(MockBehavior.Strict).Object);
119+
services.AddSingleton(new Mock<IAppMetadata>(MockBehavior.Strict).Object);
120+
services.AddSingleton(new Mock<IAppModel>(MockBehavior.Strict).Object);
121+
services.AddSingleton(new Mock<IInstantiationProcessor>(MockBehavior.Loose).Object);
122+
services.AddSingleton(new Mock<IInstantiationValidator>(MockBehavior.Strict).Object);
123+
services.AddSingleton(new Mock<IPDP>(MockBehavior.Strict).Object);
124+
services.AddSingleton(new Mock<IEventsClient>(MockBehavior.Strict).Object);
125+
services.AddSingleton(new Mock<IPrefill>(MockBehavior.Loose).Object);
126+
services.AddSingleton(new Mock<IProfileClient>(MockBehavior.Strict).Object);
127+
services.AddSingleton(new Mock<IProcessEngine>(MockBehavior.Loose).Object);
128+
services.AddSingleton(new Mock<IOrganizationClient>(MockBehavior.Strict).Object);
129+
services.AddSingleton(new Mock<IHostEnvironment>(MockBehavior.Strict).Object);
130+
services.AddSingleton(new Mock<IValidationService>(MockBehavior.Strict).Object);
131+
services.AddSingleton(new Mock<ITranslationService>(MockBehavior.Strict).Object);
132+
services.AddSingleton(new Mock<IDataElementAccessChecker>(MockBehavior.Strict).Object);
133133
services.AddSingleton(new Mock<IAppResources>(MockBehavior.Strict).Object);
134134

135-
var httpContextMock = new Mock<HttpContext>();
135+
var httpContextMock = new Mock<HttpContext>(MockBehavior.Strict);
136136
services.AddTransient(_ => httpContextMock.Object);
137137

138138
services.AddTransient<InternalPatchService>();

test/Altinn.App.Api.Tests/Controllers/InstancesController_ActiveInstancesTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public async Task UnknownUser_ReturnsEmptyString()
8282
.Mock<IInstanceClient>()
8383
.Setup(c => c.GetInstances(It.IsAny<Dictionary<string, StringValues>>()))
8484
.ReturnsAsync(instances);
85-
// _profile.Setup(p=>p.GetUserProfile(12345)).ReturnsAsync(default(UserProfile)!);
85+
fixture.Mock<IProfileClient>().Setup(p => p.GetUserProfile(12345)).ReturnsAsync(default(UserProfile)!);
8686

8787
// Act
8888
var controller = fixture.ServiceProvider.GetRequiredService<InstancesController>();

test/Altinn.App.Api.Tests/Controllers/InstancesController_CopyInstanceTests.cs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ public async Task CopyInstance_WithBinaryData_CopiesBothFormAndBinaryData()
598598
Times.Once
599599
);
600600

601-
// Verify binary data was copied (this should FAIL until we implement it)
601+
// Verify binary data was copied
602602
fixture
603603
.Mock<IDataClient>()
604604
.Verify(
@@ -1009,6 +1009,31 @@ public async Task CopyInstance_IncludeAttachmentsIsTrue_CopiesBinaryData()
10091009
),
10101010
Times.Never
10111011
);
1012+
fixture
1013+
.Mock<IDataClient>()
1014+
.Verify(
1015+
p =>
1016+
p.GetFormData(
1017+
It.IsAny<Instance>(),
1018+
It.IsAny<DataElement>(),
1019+
It.IsAny<StorageAuthenticationMethod>(),
1020+
It.IsAny<CancellationToken>()
1021+
),
1022+
Times.Never
1023+
);
1024+
fixture
1025+
.Mock<IDataClient>()
1026+
.Verify(
1027+
p =>
1028+
p.InsertFormData(
1029+
It.IsAny<Instance>(),
1030+
It.IsAny<string>(),
1031+
It.IsAny<object>(),
1032+
It.IsAny<StorageAuthenticationMethod>(),
1033+
It.IsAny<CancellationToken>()
1034+
),
1035+
Times.Never
1036+
);
10121037
}
10131038

10141039
[Fact]

test/Altinn.App.Core.Tests/Infrastructure/Clients/Storage/DataClientTests.cs

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Diagnostics.CodeAnalysis;
12
using System.Net;
23
using System.Net.Http.Headers;
34
using System.Net.Http.Json;
@@ -94,7 +95,6 @@ public async Task InsertBinaryData_MethodProduceValidPlatformRequest(Authenticat
9495

9596
// Assert
9697
Assert.NotNull(actual);
97-
Assert.NotNull(platformRequest);
9898
AssertHttpRequest(
9999
platformRequest,
100100
expectedUri,
@@ -152,7 +152,6 @@ public async Task InsertBinaryData_MethodProduceValidPlatformRequest_with_genera
152152

153153
// Assert
154154
Assert.NotNull(actual);
155-
Assert.NotNull(platformRequest);
156155
AssertHttpRequest(
157156
platformRequest,
158157
expectedUri,
@@ -217,10 +216,9 @@ public async Task GetFormData_MethodProduceValidPlatformRequest_ReturnedFormIsVa
217216
// Assert
218217
var actual = response as SkjemaWithNamespace;
219218
Assert.NotNull(actual);
220-
Assert.NotNull(actual!.Foretakgrp8820);
221-
Assert.NotNull(actual!.Foretakgrp8820.EnhetNavnEndringdatadef31);
219+
Assert.NotNull(actual.Foretakgrp8820);
220+
Assert.NotNull(actual.Foretakgrp8820.EnhetNavnEndringdatadef31);
222221

223-
Assert.NotNull(platformRequest);
224222
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Get, expectedAuth: testCase?.ExpectedToken);
225223
}
226224

@@ -297,9 +295,8 @@ public async Task UpdateBinaryData_put_updated_data_and_Return_DataElement(Authe
297295
authenticationMethod: testCase?.AuthenticationMethod
298296
);
299297
invocations.Should().Be(1);
300-
platformRequest?.Should().NotBeNull();
301298
AssertHttpRequest(
302-
platformRequest!,
299+
platformRequest,
303300
expectedUri,
304301
HttpMethod.Put,
305302
"test.json",
@@ -402,8 +399,7 @@ public async Task GetBinaryData_returns_stream_of_binary_data(AuthenticationTest
402399
authenticationMethod: testCase?.AuthenticationMethod
403400
);
404401
invocations.Should().Be(1);
405-
platformRequest?.Should().NotBeNull();
406-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Get, expectedAuth: testCase?.ExpectedToken);
402+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Get, expectedAuth: testCase?.ExpectedToken);
407403
using StreamReader streamReader = new StreamReader(response);
408404
var responseString = await streamReader.ReadToEndAsync();
409405

@@ -442,8 +438,7 @@ public async Task GetBinaryData_returns_empty_stream_when_storage_returns_notfou
442438
);
443439
response.Should().BeNull();
444440
invocations.Should().Be(1);
445-
platformRequest?.Should().NotBeNull();
446-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Get, expectedAuth: testCase?.ExpectedToken);
441+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Get, expectedAuth: testCase?.ExpectedToken);
447442
}
448443

449444
[Fact]
@@ -626,8 +621,7 @@ public async Task GetBinaryDataList_returns_AttachemtList_when_DataElements_foun
626621
authenticationMethod: testCase?.AuthenticationMethod
627622
);
628623
invocations.Should().Be(1);
629-
platformRequest?.Should().NotBeNull();
630-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Get, expectedAuth: testCase?.ExpectedToken);
624+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Get, expectedAuth: testCase?.ExpectedToken);
631625

632626
var expectedList = new List<AttachmentList>()
633627
{
@@ -718,8 +712,7 @@ public async Task DeleteBinaryData_returns_true_when_data_was_deleted()
718712
delay: false
719713
);
720714
invocations.Should().Be(1);
721-
platformRequest?.Should().NotBeNull();
722-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Delete);
715+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Delete);
723716
result.Should().BeTrue();
724717
}
725718

@@ -755,7 +748,7 @@ await fixture.DataClient.DeleteData(
755748
)
756749
);
757750
invocations.Should().Be(1);
758-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Delete);
751+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Delete);
759752
actual.Response.StatusCode.Should().Be(HttpStatusCode.NotFound);
760753
}
761754

@@ -793,8 +786,7 @@ public async Task DeleteData_returns_true_when_data_was_deleted_with_delay_true(
793786
authenticationMethod: testCase?.AuthenticationMethod
794787
);
795788
invocations.Should().Be(1);
796-
platformRequest?.Should().NotBeNull();
797-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Delete, expectedAuth: testCase?.ExpectedToken);
789+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Delete, expectedAuth: testCase?.ExpectedToken);
798790
result.Should().BeTrue();
799791
}
800792

@@ -833,9 +825,8 @@ await fixture.DataClient.UpdateData(
833825
authenticationMethod: testCase?.AuthenticationMethod
834826
);
835827
invocations.Should().Be(1);
836-
platformRequest?.Should().NotBeNull();
837828
AssertHttpRequest(
838-
platformRequest!,
829+
platformRequest,
839830
expectedUri,
840831
HttpMethod.Put,
841832
null,
@@ -919,9 +910,8 @@ await fixture.DataClient.UpdateData(
919910
)
920911
);
921912
invocations.Should().Be(1);
922-
platformRequest?.Should().NotBeNull();
923913
AssertHttpRequest(
924-
platformRequest!,
914+
platformRequest,
925915
expectedUri,
926916
HttpMethod.Put,
927917
null,
@@ -967,9 +957,8 @@ public async Task LockDataElement_calls_lock_endpoint_in_storage_and_returns_upd
967957
authenticationMethod: testCase?.AuthenticationMethod
968958
);
969959
invocations.Should().Be(1);
970-
platformRequest?.Should().NotBeNull();
971960
response.Should().BeEquivalentTo(dataElement);
972-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Put, expectedAuth: testCase?.ExpectedToken);
961+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Put, expectedAuth: testCase?.ExpectedToken);
973962
}
974963

975964
[Theory]
@@ -1005,7 +994,7 @@ await fixture.DataClient.LockDataElement(
1005994
)
1006995
);
1007996
invocations.Should().Be(1);
1008-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Put, expectedAuth: testCase?.ExpectedToken);
997+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Put, expectedAuth: testCase?.ExpectedToken);
1009998
result.Response.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
1010999
}
10111000

@@ -1045,9 +1034,8 @@ public async Task UnlockDataElement_calls_lock_endpoint_in_storage_and_returns_u
10451034
authenticationMethod: testCase?.AuthenticationMethod
10461035
);
10471036
invocations.Should().Be(1);
1048-
platformRequest?.Should().NotBeNull();
10491037
response.Should().BeEquivalentTo(dataElement);
1050-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Delete, expectedAuth: testCase?.ExpectedToken);
1038+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Delete, expectedAuth: testCase?.ExpectedToken);
10511039
}
10521040

10531041
[Theory]
@@ -1083,25 +1071,26 @@ await fixture.DataClient.UnlockDataElement(
10831071
)
10841072
);
10851073
invocations.Should().Be(1);
1086-
AssertHttpRequest(platformRequest!, expectedUri, HttpMethod.Delete, expectedAuth: testCase?.ExpectedToken);
1074+
AssertHttpRequest(platformRequest, expectedUri, HttpMethod.Delete, expectedAuth: testCase?.ExpectedToken);
10871075
result.Response.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
10881076
}
10891077

10901078
private static void AssertHttpRequest(
1091-
HttpRequestMessage actual,
1079+
[NotNull] HttpRequestMessage? actual,
10921080
Uri expectedUri,
10931081
HttpMethod method,
10941082
string? expectedFilename = null,
10951083
string? expectedContentType = null,
10961084
JwtToken? expectedAuth = null
10971085
)
10981086
{
1087+
Assert.NotNull(actual);
10991088
Assert.Equal(method, actual.Method);
11001089

11011090
var authHeader = actual.Headers.Authorization;
11021091
Assert.NotNull(authHeader);
11031092
Assert.Equal("Bearer", authHeader.Scheme);
1104-
Assert.Equal(authHeader.Parameter, expectedAuth ?? _defaultAuth.Token);
1093+
Assert.Equal(expectedAuth ?? _defaultAuth.Token, authHeader.Parameter);
11051094

11061095
const int uriComparisonIdentical = 0;
11071096
Assert.Equivalent(expectedUri, actual.RequestUri);

0 commit comments

Comments
 (0)