using Shouldly; using Volo.Abp.Localization.TestResources.Source; using Volo.Abp.Testing; using Xunit; namespace Volo.Abp.Localization; public class LocalizableStringSerializer_Tests : AbpIntegratedTest { private readonly ILocalizableStringSerializer _serializer; public LocalizableStringSerializer_Tests() { _serializer = GetRequiredService(); } [Fact] public void Serialize_FixedLocalizableString() { _serializer .Serialize(new FixedLocalizableString("")) .ShouldBe("F:"); _serializer .Serialize(new FixedLocalizableString("Hello World")) .ShouldBe("F:Hello World"); } [Fact] public void Serialize_LocalizableString() { _serializer .Serialize(new LocalizableString(typeof(LocalizationTestResource),"Car")) .ShouldBe("L:Test,Car"); } [Fact] public void Deserialize_FixedLocalizableString() { _serializer .Deserialize("") .ShouldBeOfType() .Value.ShouldBe(""); _serializer .Deserialize("Hello") .ShouldBeOfType() .Value.ShouldBe("Hello"); _serializer .Deserialize("F:Hello") .ShouldBeOfType() .Value.ShouldBe("Hello"); } [Fact] public void Deserialize_LocalizableString() { var localizableString = _serializer .Deserialize("L:Test,Car") .ShouldBeOfType(); localizableString.ResourceName.ShouldBe("Test"); localizableString.Name.ShouldBe("Car"); Assert.Throws(() => { _serializer.Deserialize("L:Test"); }); Assert.Throws(() => { _serializer.Deserialize("L:Test, "); }); } }