Try your search with a different keyword or use * as a wildcard.
using FluentAssertions;
using Nop.Services.Common;
using Nop.Services.Directory;
using Nop.Services.Localization;
using NUnit.Framework;
namespace Nop.Tests.Nop.Services.Tests.Common;
[TestFixture]
public class AddressServiceTests : ServiceTest
{
private IAddressService _addressService;
private ICountryService _countryService;
private ILocalizationService _localizationService;
private IStateProvinceService _stateProvinceService;
[OneTimeSetUp]
public async Task SetUp()
{
_localizationService = GetService();
_countryService = GetService();
_stateProvinceService = GetService();
await _localizationService.AddOrUpdateLocaleResourceAsync(new Dictionary
{
//zipPostalCode, Country, StateProvince
["Address.LineFormat"] = "{6}{0}{1}"
});
_addressService = GetService();
}
[OneTimeTearDown]
public async Task TearDown()
{
await _localizationService.AddOrUpdateLocaleResourceAsync(new Dictionary
{
["Address.LineFormat"] = "{0}{1}{2}{3}{4}{5}{6}"
});
}
[Test]
public async Task CanFormatAddressAsync()
{
var address = await _addressService.GetAddressByIdAsync(1);
var country = await _countryService.GetCountryByAddressAsync(address);
var countryName = country != null ? await _localizationService.GetLocalizedAsync(country, x => x.Name, 1) : string.Empty;
var stateProvince = await _stateProvinceService.GetStateProvinceByAddressAsync(address);
var stateProvinceName = stateProvince != null ? await _localizationService.GetLocalizedAsync(stateProvince, x => x.Name, 1) : string.Empty;
var (addressLine, addressFields) = await _addressService.FormatAddressAsync(address, 1);
addressFields[0].Value.Should().Be(address.ZipPostalCode);
addressFields[1].Value.Should().Be(countryName);
addressFields[2].Value.Should().Be(stateProvinceName);
addressLine.Should().Be($"{address.ZipPostalCode}, {countryName}, {stateProvinceName}");
}
}