StringExtensionsTests.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using Xunit;
  3. namespace Jellyfin.Extensions.Tests
  4. {
  5. public class StringExtensionsTests
  6. {
  7. [Theory]
  8. [InlineData("", '_', 0)]
  9. [InlineData("___", '_', 3)]
  10. [InlineData("test\x00", '\x00', 1)]
  11. [InlineData("Imdb=tt0119567|Tmdb=330|TmdbCollection=328", '|', 2)]
  12. public void ReadOnlySpan_Count_Success(string str, char needle, int count)
  13. {
  14. Assert.Equal(count, str.AsSpan().Count(needle));
  15. }
  16. [Theory]
  17. [InlineData("", 'q', "")]
  18. [InlineData("Banana split", ' ', "Banana")]
  19. [InlineData("Banana split", 'q', "Banana split")]
  20. [InlineData("Banana split 2", ' ', "Banana")]
  21. public void LeftPart_ValidArgsCharNeedle_Correct(string str, char needle, string expectedResult)
  22. {
  23. var result = str.AsSpan().LeftPart(needle).ToString();
  24. Assert.Equal(expectedResult, result);
  25. }
  26. [Theory]
  27. [InlineData("", 'q', "")]
  28. [InlineData("Banana split", ' ', "split")]
  29. [InlineData("Banana split", 'q', "Banana split")]
  30. [InlineData("Banana split.", '.', "")]
  31. [InlineData("Banana split 2", ' ', "2")]
  32. public void RightPart_ValidArgsCharNeedle_Correct(string str, char needle, string expectedResult)
  33. {
  34. var result = str.AsSpan().RightPart(needle).ToString();
  35. Assert.Equal(expectedResult, result);
  36. }
  37. }
  38. }