MimeMapperTests.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using Masuit.Tools.Mime;
  2. using Xunit;
  3. namespace Masuit.Tools.Abstractions.Tests
  4. {
  5. public class MimeMapperTests
  6. {
  7. private MimeMapper _mimeMapper = new();
  8. [Fact]
  9. public void GetMimeFromExtension_ShouldReturnCorrectMimeType()
  10. {
  11. // Arrange
  12. var extension = ".txt";
  13. // Act
  14. var mimeType = _mimeMapper.GetMimeFromExtension(extension);
  15. // Assert
  16. Assert.Equal("text/plain", mimeType);
  17. }
  18. [Fact]
  19. public void GetMimeFromExtension_ShouldReturnDefaultMimeType_WhenExtensionNotFound()
  20. {
  21. // Arrange
  22. var extension = ".unknown";
  23. // Act
  24. var mimeType = _mimeMapper.GetMimeFromExtension(extension);
  25. // Assert
  26. Assert.Equal(MimeMapper.DefaultMime, mimeType);
  27. }
  28. [Fact]
  29. public void GetExtensionFromMime_ShouldReturnCorrectExtension()
  30. {
  31. // Arrange
  32. var mimeType = "text/plain";
  33. // Act
  34. var extensions = _mimeMapper.GetExtensionFromMime(mimeType);
  35. // Assert
  36. Assert.True(extensions.Contains(".txt"));
  37. }
  38. [Fact]
  39. public void GetExtensionFromMime_ShouldReturnEmptyString_WhenMimeTypeNotFound()
  40. {
  41. // Arrange
  42. var mimeType = "unknown/type";
  43. // Act
  44. var extension = _mimeMapper.GetExtensionFromMime(mimeType);
  45. // Assert
  46. Assert.Equal(extension.Count, 0);
  47. }
  48. [Fact]
  49. public void GetMimeFromPath_ShouldReturnCorrectMimeType()
  50. {
  51. // Arrange
  52. var path = "file.txt";
  53. // Act
  54. var mimeType = _mimeMapper.GetMimeFromPath(path);
  55. // Assert
  56. Assert.Equal("text/plain", mimeType);
  57. }
  58. [Fact]
  59. public void GetMimeFromPath_ShouldReturnDefaultMimeType_WhenExtensionNotFound()
  60. {
  61. // Arrange
  62. var path = "file.unknown";
  63. // Act
  64. var mimeType = _mimeMapper.GetMimeFromPath(path);
  65. // Assert
  66. Assert.Equal(MimeMapper.DefaultMime, mimeType);
  67. }
  68. [Fact]
  69. public void Extend_ShouldOverrideDefaultMimeType()
  70. {
  71. // Arrange
  72. var customMapping = new MimeMappingItem { Extension = ".txt", MimeType = "custom/type" };
  73. // Act
  74. _mimeMapper.Extend(customMapping);
  75. var mimeType = _mimeMapper.GetMimeFromExtension(".txt");
  76. // Assert
  77. Assert.Equal("custom/type", mimeType);
  78. }
  79. }
  80. }