diff --git a/src/Altinn.App.Api/Altinn.App.Api.csproj b/src/Altinn.App.Api/Altinn.App.Api.csproj
index 3c00263cf..586e0d0bf 100644
--- a/src/Altinn.App.Api/Altinn.App.Api.csproj
+++ b/src/Altinn.App.Api/Altinn.App.Api.csproj
@@ -25,7 +25,7 @@
-
+
diff --git a/src/Altinn.App.Api/Controllers/OptionsController.cs b/src/Altinn.App.Api/Controllers/OptionsController.cs
index 10cf50000..6f79586e2 100644
--- a/src/Altinn.App.Api/Controllers/OptionsController.cs
+++ b/src/Altinn.App.Api/Controllers/OptionsController.cs
@@ -1,6 +1,7 @@
using Altinn.App.Core.Constants;
using Altinn.App.Core.Extensions;
using Altinn.App.Core.Features.Options;
+using Altinn.App.Core.Internal.Language;
using Altinn.App.Core.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@@ -84,7 +85,7 @@ [FromQuery] Dictionary queryParams
AppOptions appOptions = await _appOptionsService.GetOptionsAsync(
instanceIdentifier,
optionsId,
- language ?? "nb",
+ language ?? LanguageConst.Nb,
queryParams
);
diff --git a/src/Altinn.App.Api/Controllers/TextsController.cs b/src/Altinn.App.Api/Controllers/TextsController.cs
index 4ecc0204c..fe87df463 100644
--- a/src/Altinn.App.Api/Controllers/TextsController.cs
+++ b/src/Altinn.App.Api/Controllers/TextsController.cs
@@ -1,4 +1,5 @@
using Altinn.App.Core.Internal.App;
+using Altinn.App.Core.Internal.Language;
using Altinn.Platform.Storage.Interface.Models;
using Microsoft.AspNetCore.Mvc;
@@ -40,9 +41,9 @@ public async Task> Get(string org, string app, [FromR
TextResource? textResource = await _appResources.GetTexts(org, app, language);
- if (textResource == null && language != "nb")
+ if (textResource == null && language != LanguageConst.Nb)
{
- textResource = await _appResources.GetTexts(org, app, "nb");
+ textResource = await _appResources.GetTexts(org, app, LanguageConst.Nb);
}
if (textResource == null)
diff --git a/src/Altinn.App.Api/Extensions/HostBuilderExtensions.cs b/src/Altinn.App.Api/Extensions/HostBuilderExtensions.cs
index d3a6279a0..9bd00a49f 100644
--- a/src/Altinn.App.Api/Extensions/HostBuilderExtensions.cs
+++ b/src/Altinn.App.Api/Extensions/HostBuilderExtensions.cs
@@ -1,4 +1,4 @@
-using Altinn.App.Core.Internal.App;
+using Altinn.App.Core.Internal.App;
using Azure.Identity;
namespace Altinn.App.Api.Extensions;
diff --git a/src/Altinn.App.Api/Helpers/ValidContributorHelper.cs b/src/Altinn.App.Api/Helpers/ValidContributorHelper.cs
index c409cf727..4f8e655d3 100644
--- a/src/Altinn.App.Api/Helpers/ValidContributorHelper.cs
+++ b/src/Altinn.App.Api/Helpers/ValidContributorHelper.cs
@@ -1,4 +1,4 @@
-using System.Globalization;
+using System.Globalization;
using Altinn.Platform.Storage.Interface.Models;
namespace Altinn.App.Api.Helpers;
diff --git a/src/Altinn.App.Core/Altinn.App.Core.csproj b/src/Altinn.App.Core/Altinn.App.Core.csproj
index c283a66fc..0712646d7 100644
--- a/src/Altinn.App.Core/Altinn.App.Core.csproj
+++ b/src/Altinn.App.Core/Altinn.App.Core.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/src/Altinn.App.Core/Features/Maskinporten/MaskinportenClient.cs b/src/Altinn.App.Core/Features/Maskinporten/MaskinportenClient.cs
index bb8115136..d5459799d 100644
--- a/src/Altinn.App.Core/Features/Maskinporten/MaskinportenClient.cs
+++ b/src/Altinn.App.Core/Features/Maskinporten/MaskinportenClient.cs
@@ -87,7 +87,7 @@ public async Task GetAccessToken(
HasSetExpiration: false
);
},
- token: cancellationToken,
+ cancellationToken: cancellationToken,
options: _defaultCacheExpiration
);
@@ -99,7 +99,7 @@ await _tokenCache.SetAsync(
cacheKey,
result,
options: CacheExpiry(result.Expiration),
- token: cancellationToken
+ cancellationToken: cancellationToken
);
}
diff --git a/src/Altinn.App.Core/Features/Payment/Processors/FakePaymentProcessor/FakePaymentProcessor.cs b/src/Altinn.App.Core/Features/Payment/Processors/FakePaymentProcessor/FakePaymentProcessor.cs
index 552c02719..1939c7f3c 100644
--- a/src/Altinn.App.Core/Features/Payment/Processors/FakePaymentProcessor/FakePaymentProcessor.cs
+++ b/src/Altinn.App.Core/Features/Payment/Processors/FakePaymentProcessor/FakePaymentProcessor.cs
@@ -1,4 +1,4 @@
-using Altinn.App.Core.Configuration;
+using Altinn.App.Core.Configuration;
using Altinn.App.Core.Features.Payment.Models;
using Altinn.App.Core.Models;
using Altinn.Platform.Storage.Interface.Models;
diff --git a/src/Altinn.App.Core/Features/Payment/Processors/Nets/Models/NetsCheckoutConsumerDetails.cs b/src/Altinn.App.Core/Features/Payment/Processors/Nets/Models/NetsCheckoutConsumerDetails.cs
index 70ea4dea2..7d765e32c 100644
--- a/src/Altinn.App.Core/Features/Payment/Processors/Nets/Models/NetsCheckoutConsumerDetails.cs
+++ b/src/Altinn.App.Core/Features/Payment/Processors/Nets/Models/NetsCheckoutConsumerDetails.cs
@@ -1,4 +1,4 @@
-namespace Altinn.App.Core.Features.Payment.Processors.Nets.Models;
+namespace Altinn.App.Core.Features.Payment.Processors.Nets.Models;
internal class NetsCheckoutConsumerDetails
{
diff --git a/src/Altinn.App.Core/Internal/Language/LanguageConst.cs b/src/Altinn.App.Core/Internal/Language/LanguageConst.cs
new file mode 100644
index 000000000..a94b8dbd5
--- /dev/null
+++ b/src/Altinn.App.Core/Internal/Language/LanguageConst.cs
@@ -0,0 +1,8 @@
+namespace Altinn.App.Core.Internal.Language;
+
+internal static class LanguageConst
+{
+ internal static string Nb => "nb";
+ internal static string Nn => "nn";
+ internal static string En => "en";
+}
diff --git a/src/Altinn.App.Core/Internal/Pdf/PdfService.cs b/src/Altinn.App.Core/Internal/Pdf/PdfService.cs
index 600b21db3..e8ac114e2 100644
--- a/src/Altinn.App.Core/Internal/Pdf/PdfService.cs
+++ b/src/Altinn.App.Core/Internal/Pdf/PdfService.cs
@@ -5,6 +5,7 @@
using Altinn.App.Core.Helpers.Extensions;
using Altinn.App.Core.Internal.App;
using Altinn.App.Core.Internal.Data;
+using Altinn.App.Core.Internal.Language;
using Altinn.App.Core.Internal.Profile;
using Altinn.App.Core.Models;
using Altinn.Platform.Profile.Models;
@@ -68,9 +69,12 @@ public PdfService(
public async Task GenerateAndStorePdf(Instance instance, string taskId, CancellationToken ct)
{
using var activity = _telemetry?.StartGenerateAndStorePdfActivity(instance, taskId);
- string language = GetOverriddenLanguage();
- // Avoid a costly call if the language is allready overriden by the user
- language = string.IsNullOrEmpty(language) ? await GetLanguage() : language;
+
+ HttpContext? httpContext = _httpContextAccessor.HttpContext;
+ var queries = httpContext?.Request.Query;
+ var user = httpContext?.User;
+
+ var language = GetOverriddenLanguage(queries) ?? await GetLanguage(user);
var pdfContent = await GeneratePdfContent(instance, taskId, language, ct);
@@ -85,9 +89,12 @@ public async Task GenerateAndStorePdf(Instance instance, string taskId, Cancella
public async Task GeneratePdf(Instance instance, string taskId, CancellationToken ct)
{
using var activity = _telemetry?.StartGeneratePdfActivity(instance, taskId);
- var language = GetOverriddenLanguage();
- // Avoid a costly call if the language is allready overriden by the user
- language = string.IsNullOrEmpty(language) ? await GetLanguage() : language;
+
+ HttpContext? httpContext = _httpContextAccessor.HttpContext;
+ var queries = httpContext?.Request.Query;
+ var user = httpContext?.User;
+
+ var language = GetOverriddenLanguage(queries) ?? await GetLanguage(user);
return await GeneratePdfContent(instance, taskId, language, ct);
}
@@ -128,14 +135,18 @@ private static Uri BuildUri(string baseUrl, string pagePath, string language)
return new Uri(url);
}
- private async Task GetLanguage()
+ internal async Task GetLanguage(ClaimsPrincipal? user)
{
- string language = "nb";
- ClaimsPrincipal? user = _httpContextAccessor.HttpContext?.User;
+ string language = LanguageConst.Nb;
+
+ if (user is null)
+ {
+ return language;
+ }
int? userId = user.GetUserIdAsInt();
- if (userId != null)
+ if (userId is not null)
{
UserProfile userProfile =
await _profileClient.GetUserProfile((int)userId)
@@ -150,33 +161,32 @@ await _profileClient.GetUserProfile((int)userId)
return language;
}
- private string GetOverriddenLanguage()
+ internal static string? GetOverriddenLanguage(IQueryCollection? queries)
{
- // If the user has overridden the language from his profile by selecting a
- // language directly in the form, then use the selected language.
- if (_httpContextAccessor.HttpContext != null)
+ if (queries is null)
{
- StringValues queryLanguage;
- bool hasQueryLanguage =
- _httpContextAccessor.HttpContext.Request.Query.TryGetValue("language", out queryLanguage)
- || _httpContextAccessor.HttpContext.Request.Query.TryGetValue("lang", out queryLanguage);
- if (hasQueryLanguage)
- {
- return queryLanguage.ToString();
- }
+ return null;
+ }
+
+ if (
+ queries.TryGetValue("language", out StringValues queryLanguage)
+ || queries.TryGetValue("lang", out queryLanguage)
+ )
+ {
+ return queryLanguage.ToString();
}
- return string.Empty;
+ return null;
}
private async Task GetTextResource(string app, string org, string language)
{
TextResource? textResource = await _resourceService.GetTexts(org, app, language);
- if (textResource == null && language != "nb")
+ if (textResource == null && language != LanguageConst.Nb)
{
// fallback to norwegian if texts does not exist
- textResource = await _resourceService.GetTexts(org, app, "nb");
+ textResource = await _resourceService.GetTexts(org, app, LanguageConst.Nb);
}
return textResource;
@@ -189,7 +199,7 @@ private static string GetFileName(Instance instance, TextResource? textResource)
fileName = $"{app}.pdf";
- if (textResource == null)
+ if (textResource is null)
{
return GetValidFileName(fileName);
}
@@ -202,7 +212,7 @@ private static string GetFileName(Instance instance, TextResource? textResource)
textResourceElement.Id.Equals("ServiceName", StringComparison.Ordinal)
);
- if (titleText != null && !string.IsNullOrEmpty(titleText.Value))
+ if (titleText is not null && !string.IsNullOrEmpty(titleText.Value))
{
fileName = titleText.Value + ".pdf";
}
diff --git a/test/Altinn.App.Api.Tests/Altinn.App.Api.Tests.csproj b/test/Altinn.App.Api.Tests/Altinn.App.Api.Tests.csproj
index abab50751..ca6de8bff 100644
--- a/test/Altinn.App.Api.Tests/Altinn.App.Api.Tests.csproj
+++ b/test/Altinn.App.Api.Tests/Altinn.App.Api.Tests.csproj
@@ -9,9 +9,9 @@
-
-
-
+
+
+
diff --git a/test/Altinn.App.Api.Tests/Controllers/DataController_PatchTests.cs b/test/Altinn.App.Api.Tests/Controllers/DataController_PatchTests.cs
index 68d2e6687..a072c57ae 100644
--- a/test/Altinn.App.Api.Tests/Controllers/DataController_PatchTests.cs
+++ b/test/Altinn.App.Api.Tests/Controllers/DataController_PatchTests.cs
@@ -10,6 +10,7 @@
using Altinn.App.Api.Tests.Data.apps.tdd.contributer_restriction.models;
using Altinn.App.Api.Tests.Utils;
using Altinn.App.Core.Features;
+using Altinn.App.Core.Internal.Language;
using Altinn.App.Core.Models.Validation;
using Altinn.Platform.Storage.Interface.Models;
using App.IntegrationTests.Mocks.Services;
@@ -41,9 +42,9 @@ public class DataControllerPatchTests : ApiTestBase, IClassFixture _dataProcessorMock = new(MockBehavior.Strict);
@@ -64,8 +65,8 @@ public DataControllerPatchTests(WebApplicationFactory factory, ITestOut
services.AddSingleton(_dataProcessorMock.Object);
services.AddSingleton(_formDataValidatorMock.Object);
};
- TestData.DeleteInstanceAndData(Org, App, InstanceOwnerPartyId, InstanceGuid);
- TestData.PrepareInstance(Org, App, InstanceOwnerPartyId, InstanceGuid);
+ TestData.DeleteInstanceAndData(Org, App, InstanceOwnerPartyId, _instanceGuid);
+ TestData.PrepareInstance(Org, App, InstanceOwnerPartyId, _instanceGuid);
}
// Helper method to call the API
@@ -80,7 +81,7 @@ TResponse parsedResponse
string? language = null
)
{
- var url = $"/{Org}/{App}/instances/{InstanceId}/data/{DataGuid}";
+ var url = $"/{Org}/{App}/instances/{_instanceId}/data/{_dataGuid}";
if (language is not null)
{
url += $"?language={language}";
@@ -114,7 +115,7 @@ TResponse parsedResponse
string? language = null
)
{
- var url = $"/{Org}/{App}/instances/{InstanceId}/data";
+ var url = $"/{Org}/{App}/instances/{_instanceId}/data";
if (language is not null)
{
url += $"?language={language}";
@@ -168,7 +169,7 @@ public async Task ValidName_ReturnsOk()
p =>
p.ProcessDataWrite(
It.IsAny(),
- It.Is(dataId => dataId == DataGuid),
+ It.Is(dataId => dataId == _dataGuid),
It.IsAny(),
It.IsAny(),
null
@@ -220,7 +221,7 @@ public async Task MultiplePatches_AppliesCorrectly()
// Initialize extra data element
var createExtraElementResponse = await GetClient()
.PostAsync(
- $"{Org}/{App}/instances/{InstanceId}/data?dataType={prefillDataType}",
+ $"{Org}/{App}/instances/{_instanceId}/data?dataType={prefillDataType}",
new StringContent("""{"melding":{}}""", Encoding.UTF8, "application/json")
);
var createExtraElementResponseString = await createExtraElementResponse.Content.ReadAsStringAsync();
@@ -241,7 +242,7 @@ public async Task MultiplePatches_AppliesCorrectly()
);
var request = new DataPatchRequestMultiple()
{
- Patches = new Dictionary { [DataGuid] = patch, [extraDataGuid] = patch2, },
+ Patches = new Dictionary { [_dataGuid] = patch, [extraDataGuid] = patch2, },
IgnoredValidators = []
};
@@ -249,9 +250,9 @@ public async Task MultiplePatches_AppliesCorrectly()
parsedResponse.ValidationIssues.Should().ContainKey("Required").WhoseValue.Should().BeEmpty();
- parsedResponse.NewDataModels.Should().HaveCount(2).And.ContainKey(DataGuid).And.ContainKey(extraDataGuid);
+ parsedResponse.NewDataModels.Should().HaveCount(2).And.ContainKey(_dataGuid).And.ContainKey(extraDataGuid);
var newData = parsedResponse
- .NewDataModels[DataGuid]
+ .NewDataModels[_dataGuid]
.Should()
.BeOfType()
.Which.Deserialize()!;
@@ -303,7 +304,7 @@ public async Task NullName_ReturnsOkAndValidationError()
// Run full validation to see that result is the same
using var client = GetRootedClient(Org, App, UserId, null);
- var validationResponse = await client.GetAsync($"/{Org}/{App}/instances/{InstanceId}/validate");
+ var validationResponse = await client.GetAsync($"/{Org}/{App}/instances/{_instanceId}/validate");
validationResponse.Should().HaveStatusCode(HttpStatusCode.OK);
var validationResponseString = await validationResponse.Content.ReadAsStringAsync();
var validationResponseObject = JsonSerializer.Deserialize>(
@@ -316,7 +317,7 @@ public async Task NullName_ReturnsOkAndValidationError()
p =>
p.ProcessDataWrite(
It.IsAny(),
- It.Is(dataId => dataId == DataGuid),
+ It.Is(dataId => dataId == _dataGuid),
It.IsAny(),
It.IsAny(),
null
@@ -427,7 +428,7 @@ public async Task TestEmptyListAndInsertElement_ReturnsNewModel()
p =>
p.ProcessDataWrite(
It.IsAny(),
- It.Is(dataId => dataId == DataGuid),
+ It.Is(dataId => dataId == _dataGuid),
It.Is(s => s.Melding!.NestedList!.Count == 1),
It.Is(s => s!.Melding!.NestedList!.Count == 0),
null
@@ -801,7 +802,7 @@ public async Task RowId_GetsAddedAutomatically()
public async Task DataReadChanges_IsPreservedWhenCallingPatch()
{
_dataProcessorMock
- .Setup(p => p.ProcessDataRead(It.IsAny(), It.IsAny(), It.IsAny(), "nn"))
+ .Setup(p => p.ProcessDataRead(It.IsAny(), It.IsAny(), It.IsAny(), LanguageConst.Nn))
.Returns(
(Instance instance, Guid dataGuid, Skjema skjema, string language) =>
{
@@ -827,7 +828,7 @@ public async Task DataReadChanges_IsPreservedWhenCallingPatch()
.Verifiable(Times.Exactly(1));
// call Read to get the data with changes to Melding.Random from ProcessDataRead
- var url = $"/{Org}/{App}/instances/{InstanceId}/data/{DataGuid}?language=nn";
+ var url = $"/{Org}/{App}/instances/{_instanceId}/data/{_dataGuid}?language=nn";
_outputHelper.WriteLine($"Calling GET {url}");
using var httpClient = GetRootedClient(Org, App);
string token = PrincipalUtil.GetToken(1337, null);
@@ -886,7 +887,7 @@ public async Task VerifyLanguageIsPassedToDataProcessor()
p =>
p.ProcessDataWrite(
It.IsAny(),
- It.Is(dataId => dataId == DataGuid),
+ It.Is(dataId => dataId == _dataGuid),
It.IsAny(),
It.IsAny(),
"es"
diff --git a/test/Altinn.App.Api.Tests/Controllers/OptionsControllerTests.cs b/test/Altinn.App.Api.Tests/Controllers/OptionsControllerTests.cs
index 7c8d3b3a1..44a2afc5d 100644
--- a/test/Altinn.App.Api.Tests/Controllers/OptionsControllerTests.cs
+++ b/test/Altinn.App.Api.Tests/Controllers/OptionsControllerTests.cs
@@ -1,5 +1,6 @@
using System.Net;
using Altinn.App.Core.Features;
+using Altinn.App.Core.Internal.Language;
using Altinn.App.Core.Models;
using FluentAssertions;
using Microsoft.AspNetCore.Mvc.Testing;
@@ -118,7 +119,7 @@ public async Task Get_ShouldNotDefaultToNbLanguage()
var headerValue = response.Headers.GetValues("Altinn-DownstreamParameters");
response.StatusCode.Should().Be(HttpStatusCode.OK);
- headerValue.Should().NotContain("nb");
+ headerValue.Should().NotContain(LanguageConst.Nb);
}
[Fact]
diff --git a/test/Altinn.App.Api.Tests/Controllers/PdfControllerTests.cs b/test/Altinn.App.Api.Tests/Controllers/PdfControllerTests.cs
index ec94bdc59..6755f9302 100644
--- a/test/Altinn.App.Api.Tests/Controllers/PdfControllerTests.cs
+++ b/test/Altinn.App.Api.Tests/Controllers/PdfControllerTests.cs
@@ -6,6 +6,7 @@
using Altinn.App.Core.Internal.Auth;
using Altinn.App.Core.Internal.Data;
using Altinn.App.Core.Internal.Instances;
+using Altinn.App.Core.Internal.Language;
using Altinn.App.Core.Internal.Pdf;
using Altinn.App.Core.Internal.Profile;
using Altinn.Platform.Storage.Interface.Models;
@@ -22,24 +23,24 @@ namespace Altinn.App.Api.Tests.Controllers;
public class PdfControllerTests
{
- private readonly string org = "org";
- private readonly string app = "app";
- private readonly Guid instanceId = new Guid("e11e3e0b-a45c-48fb-a968-8d4ddf868c80");
- private readonly int partyId = 12345;
- private readonly string taskId = "Task_1";
+ private readonly string _org = "org";
+ private readonly string _app = "app";
+ private readonly Guid _instanceId = new("e11e3e0b-a45c-48fb-a968-8d4ddf868c80");
+ private readonly int _partyId = 12345;
+ private readonly string _taskId = "Task_1";
private readonly Mock _appResources = new();
private readonly Mock _dataClient = new();
private readonly Mock _profile = new();
- private readonly IOptions _platformSettingsOptions =
- Microsoft.Extensions.Options.Options.Create(new() { });
+ private readonly IOptions _platformSettingsOptions = Options.Create(new() { });
private readonly Mock _instanceClient = new();
private readonly Mock _pdfFormatter = new();
private readonly Mock _appModel = new();
private readonly Mock _userTokenProvider = new();
- private readonly IOptions _pdfGeneratorSettingsOptions =
- Microsoft.Extensions.Options.Options.Create(new() { });
+ private readonly IOptions _pdfGeneratorSettingsOptions = Options.Create(
+ new() { }
+ );
public PdfControllerTests()
{
@@ -49,10 +50,13 @@ public PdfControllerTests()
Task.FromResult(
new Instance()
{
- Org = org,
- AppId = $"{org}/{app}",
- Id = $"{partyId}/{instanceId}",
- Process = new ProcessState() { CurrentTask = new ProcessElementInfo() { ElementId = taskId, }, }
+ Org = _org,
+ AppId = $"{_org}/{_app}",
+ Id = $"{_partyId}/{_instanceId}",
+ Process = new ProcessState()
+ {
+ CurrentTask = new ProcessElementInfo() { ElementId = _taskId, },
+ }
}
)
);
@@ -64,12 +68,12 @@ public async Task Request_In_Prod_Should_Be_Blocked()
var env = new Mock();
env.Setup(a => a.EnvironmentName).Returns("Production");
- IOptions generalSettingsOptions = Microsoft.Extensions.Options.Options.Create(
+ IOptions generalSettingsOptions = Options.Create(
new() { HostName = "org.apps.altinn.no" }
);
var httpContextAccessor = new Mock();
- httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns("nb");
+ httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns(LanguageConst.Nb);
var handler = new Mock();
var httpClient = new HttpClient(handler.Object);
@@ -100,7 +104,7 @@ public async Task Request_In_Prod_Should_Be_Blocked()
pdfService
);
- var result = await pdfController.GetPdfPreview(org, app, partyId, instanceId);
+ var result = await pdfController.GetPdfPreview(_org, _app, _partyId, _instanceId);
result.Should().BeOfType(typeof(NotFoundResult));
handler
@@ -114,12 +118,12 @@ public async Task Request_In_Dev_Should_Generate()
var env = new Mock();
env.Setup(a => a.EnvironmentName).Returns("Development");
- IOptions generalSettingsOptions = Microsoft.Extensions.Options.Options.Create(
+ IOptions generalSettingsOptions = Options.Create(
new() { HostName = "local.altinn.cloud" }
);
var httpContextAccessor = new Mock();
- httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns("nb");
+ httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns(LanguageConst.Nb);
string? frontendVersion = null;
httpContextAccessor
.Setup(x => x.HttpContext!.Request!.Cookies.TryGetValue("frontendVersion", out frontendVersion))
@@ -175,7 +179,7 @@ public async Task Request_In_Dev_Should_Generate()
)
.ReturnsAsync(mockResponse);
- var result = await pdfController.GetPdfPreview(org, app, partyId, instanceId);
+ var result = await pdfController.GetPdfPreview(_org, _app, _partyId, _instanceId);
result.Should().BeOfType(typeof(FileStreamResult));
}
@@ -193,12 +197,12 @@ public async Task Request_In_Dev_Should_Include_Frontend_Version()
var env = new Mock();
env.Setup(a => a.EnvironmentName).Returns("Development");
- IOptions generalSettingsOptions = Microsoft.Extensions.Options.Options.Create(
+ IOptions generalSettingsOptions = Options.Create(
new() { HostName = "local.altinn.cloud" }
);
var httpContextAccessor = new Mock();
- httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns("nb");
+ httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns(LanguageConst.Nb);
string? frontendVersion = "https://altinncdn.no/toolkits/altinn-app-frontend/3/";
httpContextAccessor
.Setup(x => x.HttpContext!.Request!.Cookies.TryGetValue("frontendVersion", out frontendVersion))
@@ -254,7 +258,7 @@ public async Task Request_In_Dev_Should_Include_Frontend_Version()
)
.ReturnsAsync(mockResponse);
- var result = await pdfController.GetPdfPreview(org, app, partyId, instanceId);
+ var result = await pdfController.GetPdfPreview(_org, _app, _partyId, _instanceId);
result.Should().BeOfType(typeof(FileStreamResult));
}
@@ -274,12 +278,12 @@ public async Task Request_In_TT02_Should_Ignore_Frontend_Version()
var env = new Mock();
env.Setup(a => a.EnvironmentName).Returns("Staging");
- IOptions generalSettingsOptions = Microsoft.Extensions.Options.Options.Create(
+ IOptions generalSettingsOptions = Options.Create(
new() { HostName = "org.apps.tt02.altinn.no" }
);
var httpContextAccessor = new Mock();
- httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns("nb");
+ httpContextAccessor.Setup(x => x.HttpContext!.Request!.Query["lang"]).Returns(LanguageConst.Nb);
string? frontendVersion = "https://altinncdn.no/toolkits/altinn-app-frontend/3/";
httpContextAccessor
.Setup(x => x.HttpContext!.Request!.Cookies.TryGetValue("frontendVersion", out frontendVersion))
@@ -335,7 +339,7 @@ public async Task Request_In_TT02_Should_Ignore_Frontend_Version()
)
.ReturnsAsync(mockResponse);
- var result = await pdfController.GetPdfPreview(org, app, partyId, instanceId);
+ var result = await pdfController.GetPdfPreview(_org, _app, _partyId, _instanceId);
result.Should().BeOfType(typeof(FileStreamResult));
}
diff --git a/test/Altinn.App.Api.Tests/Controllers/TextsControllerTests.cs b/test/Altinn.App.Api.Tests/Controllers/TextsControllerTests.cs
index e614ae0e4..c5f05387b 100644
--- a/test/Altinn.App.Api.Tests/Controllers/TextsControllerTests.cs
+++ b/test/Altinn.App.Api.Tests/Controllers/TextsControllerTests.cs
@@ -1,5 +1,6 @@
using Altinn.App.Api.Controllers;
using Altinn.App.Core.Internal.App;
+using Altinn.App.Core.Internal.Language;
using Altinn.Platform.Storage.Interface.Models;
using FluentAssertions;
using Microsoft.AspNetCore.Mvc;
@@ -15,7 +16,7 @@ public async Task Get_RetrunsTexts_when_found()
// Arrange
const string org = "ttd";
const string app = "unit-app";
- const string language = "nb";
+ string language = LanguageConst.Nb;
TextResource expected = new TextResource
{
@@ -49,12 +50,12 @@ public async Task Get_checks_for_nb_text_if_language_specific_not_found_and_retu
// Arrange
const string org = "ttd";
const string app = "unit-app";
- const string language = "en";
+ string language = LanguageConst.En;
TextResource expected = new TextResource
{
Id = "test",
- Language = "nb",
+ Language = LanguageConst.Nb,
Org = org,
Resources = new List
{
@@ -64,7 +65,9 @@ public async Task Get_checks_for_nb_text_if_language_specific_not_found_and_retu
var appResourceMock = new Mock();
appResourceMock.Setup(a => a.GetTexts(org, app, language)).Returns(Task.FromResult(null));
- appResourceMock.Setup(a => a.GetTexts(org, app, "nb")).Returns(Task.FromResult(null));
+ appResourceMock
+ .Setup(a => a.GetTexts(org, app, LanguageConst.Nb))
+ .Returns(Task.FromResult(null));
// Act
var controller = new TextsController(appResourceMock.Object);
var result = await controller.Get(org, app, language);
@@ -74,7 +77,7 @@ public async Task Get_checks_for_nb_text_if_language_specific_not_found_and_retu
result.Result.Should().BeOfType();
resultValue.Should().BeNull();
appResourceMock.Verify(a => a.GetTexts(org, app, language), Times.Once);
- appResourceMock.Verify(a => a.GetTexts(org, app, "nb"), Times.Once);
+ appResourceMock.Verify(a => a.GetTexts(org, app, LanguageConst.Nb), Times.Once);
appResourceMock.VerifyNoOtherCalls();
}
diff --git a/test/Altinn.App.Api.Tests/Controllers/ValidateControllerValidateDataTests.cs b/test/Altinn.App.Api.Tests/Controllers/ValidateControllerValidateDataTests.cs
index 7d2f71663..eaa2cc4fc 100644
--- a/test/Altinn.App.Api.Tests/Controllers/ValidateControllerValidateDataTests.cs
+++ b/test/Altinn.App.Api.Tests/Controllers/ValidateControllerValidateDataTests.cs
@@ -6,6 +6,7 @@
using Altinn.App.Core.Internal.AppModel;
using Altinn.App.Core.Internal.Data;
using Altinn.App.Core.Internal.Instances;
+using Altinn.App.Core.Internal.Language;
using Altinn.App.Core.Internal.Validation;
using Altinn.App.Core.Models;
using Altinn.App.Core.Models.Validation;
@@ -95,7 +96,7 @@ public class TestScenariosData : IEnumerable