StringTest.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Masuit.Tools.Strings;
  2. using Xunit;
  3. namespace Masuit.Tools.Abstractions.Test.Strings;
  4. public class StringTest
  5. {
  6. [Fact]
  7. public void Can_MeasureString()
  8. {
  9. // arrange
  10. const string s = "1a啊🥳∰㍰ⅷ㍿👩‍❤️‍💋‍👩";
  11. // act
  12. var width = s.StringWidth();
  13. var charCount = s.CharacterCount();
  14. var bytesCount = s.BytesCount();
  15. var matchEmoji = s.MatchEmoji();
  16. // assert
  17. Assert.Equal(width, 9);
  18. Assert.Equal(charCount, 9);
  19. Assert.Equal(bytesCount, 48);
  20. Assert.True(matchEmoji);
  21. }
  22. [Fact]
  23. public void Can_Mask()
  24. {
  25. // arrange
  26. const string s = "13123456789";
  27. // act
  28. var mask = s.Mask();
  29. // assert
  30. Assert.Equal(mask, "131****6789");
  31. }
  32. [Theory]
  33. [InlineData("[email protected]", "1****@1.cn")]
  34. [InlineData("[email protected]", "a****@masuit.com")]
  35. public void Can_MaskEmail(string input, string expect)
  36. {
  37. // act
  38. var mask = input.MaskEmail();
  39. // assert
  40. Assert.Equal(mask, expect);
  41. }
  42. }