Files
NetUnicodeInfo/UnicodeInformation.Tests/UnicodeDataManagerTests.cs
T

66 lines
1.6 KiB
C#

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.IO.Compression;
using System.Unicode.Builder;
namespace System.Unicode.Tests
{
[TestClass]
public class UnicodeDataManagerTests
{
private const string UcdDirectoryName = "UCD";
[TestInitialize]
public void Initialize()
{
var directoryName = Path.GetFullPath(UcdDirectoryName);
if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
var fileName = Path.Combine(directoryName, "UCD.zip");
if (!File.Exists(fileName))
{
new WebClient().DownloadFile("http://www.unicode.org/Public/UCD/latest/ucd/UCD.zip", fileName);
ZipFile.ExtractToDirectory(fileName, directoryName);
}
}
}
[TestMethod]
public async Task BuildDataAsync()
{
var source = new FileUcdSource(UcdDirectoryName);
var data = (await UnicodeDataManager.BuildDataAsync(source)).ToUnicodeData();
Assert.AreEqual((int)'\t', data.GetUnicodeData('\t').CodePointRange.FirstCodePoint);
}
[TestMethod]
public async Task BuildAndWriteDataAsync()
{
var source = new FileUcdSource(UcdDirectoryName);
var data = await UnicodeDataManager.BuildDataAsync(source);
using (var stream = new DeflateStream(File.Create("ucd.dat"), CompressionLevel.Optimal, false))
{
data.WriteToStream(stream);
}
using (var stream = new DeflateStream(File.OpenRead("ucd.dat"), CompressionMode.Decompress, false))
{
var readData = UnicodeData.FromStream(stream);
Assert.AreEqual((int)'\t', data.Get('\t').CodePointRange.FirstCodePoint);
}
}
}
}