Browse Source

update localization test to use current UI culture and handle concurrent requests

pull/24838/head
maliming 8 months ago
parent
commit
5eddbb9224
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 15
      framework/test/Volo.Abp.AspNetCore.Mvc.Client.Tests/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient_Tests.cs

15
framework/test/Volo.Abp.AspNetCore.Mvc.Client.Tests/Volo/Abp/AspNetCore/Mvc/Client/MvcCachedApplicationConfigurationClient_Tests.cs

@ -33,13 +33,14 @@ public class MvcCachedApplicationConfigurationClient_Tests : AbpAspNetCoreMvcCli
} }
[Fact] [Fact]
public async Task Should_Use_Concurrent_Requests_When_Culture_Matches() public async Task Should_Use_CurrentUICulture_For_Localization_Request()
{ {
var cultureName = "en"; var cultureName = "en";
using (CultureHelper.Use(cultureName)) using (CultureHelper.Use(cultureName))
{ {
_configProxy.GetAsync(Arg.Any<ApplicationConfigurationRequestOptions>()).Returns(CreateConfigDto(cultureName)); var configTcs = new TaskCompletionSource<ApplicationConfigurationDto>();
_configProxy.GetAsync(Arg.Any<ApplicationConfigurationRequestOptions>()).Returns(configTcs.Task);
var expectedResources = new Dictionary<string, ApplicationLocalizationResourceDto> var expectedResources = new Dictionary<string, ApplicationLocalizationResourceDto>
{ {
@ -48,12 +49,18 @@ public class MvcCachedApplicationConfigurationClient_Tests : AbpAspNetCoreMvcCli
_localizationProxy.GetAsync(Arg.Any<ApplicationLocalizationRequestDto>()).Returns(new ApplicationLocalizationDto { Resources = expectedResources }); _localizationProxy.GetAsync(Arg.Any<ApplicationLocalizationRequestDto>()).Returns(new ApplicationLocalizationDto { Resources = expectedResources });
var result = await _applicationConfigurationClient.GetAsync(); var resultTask = _applicationConfigurationClient.GetAsync();
// Localization request should be fired before config completes (concurrent).
await _localizationProxy.Received(1).GetAsync(Arg.Is<ApplicationLocalizationRequestDto>(x => x.CultureName == cultureName && x.OnlyDynamics == true));
// Now let config complete.
configTcs.SetResult(CreateConfigDto(cultureName));
var result = await resultTask;
result.Localization.Resources.ShouldBe(expectedResources); result.Localization.Resources.ShouldBe(expectedResources);
await _configProxy.Received(1).GetAsync(Arg.Is<ApplicationConfigurationRequestOptions>(x => x.IncludeLocalizationResources == false)); await _configProxy.Received(1).GetAsync(Arg.Is<ApplicationConfigurationRequestOptions>(x => x.IncludeLocalizationResources == false));
await _localizationProxy.Received(1).GetAsync(Arg.Is<ApplicationLocalizationRequestDto>(x => x.CultureName == cultureName && x.OnlyDynamics == true));
} }
} }

Loading…
Cancel
Save