| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using System;
- using System.IO;
- using System.Text;
- using Masuit.Tools.Files;
- using Masuit.Tools.Systems;
- using Xunit;
- namespace Masuit.Tools.Abstractions.Test.Files;
- public class TextEncodingDetectorTests
- {
- [Theory]
- [InlineData("Hello, World!", "ASCII")]
- [InlineData("Hello, World!", "UTF-8")]
- [InlineData("Hello, World!", "Unicode")]
- [InlineData("Hello, World!", "UTF-32")]
- public void GetEncoding_ShouldDetectEncodingFromFile(string content, string encodingName)
- {
- string _testFilePath = Path.Combine(Path.GetTempPath(), "testfile1.txt");
- var encoding = Encoding.GetEncoding(encodingName);
- File.WriteAllText(_testFilePath, content, encoding);
- var detectedEncoding = TextEncodingDetector.GetEncoding(_testFilePath);
- Assert.Equal(encoding, detectedEncoding);
- }
- [Theory]
- [InlineData("Hello, World!", "ASCII")]
- [InlineData("Hello, World!", "UTF-8")]
- [InlineData("Hello, World!", "Unicode")]
- [InlineData("Hello, World!", "UTF-32")]
- public void GetEncoding_ShouldDetectEncodingFromFileInfo(string content, string encodingName)
- {
- string _testFilePath = Path.Combine(Path.GetTempPath(), "testfile2.txt");
- var encoding = Encoding.GetEncoding(encodingName);
- File.WriteAllText(_testFilePath, content, encoding);
- var fileInfo = new FileInfo(_testFilePath);
- var detectedEncoding = fileInfo.GetEncoding();
- Assert.Equal(encoding, detectedEncoding);
- }
- [Theory]
- [InlineData("Hello, World!", "ASCII")]
- [InlineData("Hello, World!", "UTF-8")]
- [InlineData("Hello, World!", "Unicode")]
- [InlineData("Hello, World!", "UTF-32")]
- public void GetEncoding_ShouldDetectEncodingFromStream(string content, string encodingName)
- {
- string _testFilePath = Path.Combine(Path.GetTempPath(), "testfile3.txt");
- var encoding = Encoding.GetEncoding(encodingName);
- File.WriteAllText(_testFilePath, content, encoding);
- using var stream = new FileStream(_testFilePath, FileMode.Open, FileAccess.Read);
- var detectedEncoding = stream.GetEncoding();
- Assert.Equal(encoding, detectedEncoding);
- }
- [Theory]
- [InlineData(new byte[] { 255, 254, 0, 0 }, "UTF-32")]
- [InlineData(new byte[] { 0, 0, 254, 255 }, "utf-32BE")]
- [InlineData(new byte[] { 239, 187, 191 }, "UTF-8")]
- [InlineData(new byte[] { 72, 101, 108, 108 }, "ASCII")]
- public void GetEncoding_ShouldDetectEncodingFromBytes(byte[] bytes, string expectedEncodingName)
- {
- var expectedEncoding = Encoding.GetEncoding(expectedEncodingName);
- var detectedEncoding = new PooledMemoryStream(bytes).GetEncoding();
- Assert.Equal(expectedEncoding, detectedEncoding);
- }
- }
|