dot/tests/TestGet.cs
2023-01-30 14:57:09 +08:00

52 lines
1.4 KiB
C#

using System.Diagnostics;
using System.Security.Cryptography;
namespace Dot.Tests;
/// <summary>
/// TestGet
/// </summary>
public class TestGet
{
/// <summary>
/// DownloadFile
/// </summary>
[Test]
public void DownloadFile()
{
var file = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid()}.tmp");
try {
using var p = Process.Start(new ProcessStartInfo //
{
FileName = "../../../dot/bin/net7.0-windows/dot.exe"
, Arguments = $"get http://dl.360safe.com/360zip_setup.exe -o \"{file}\""
});
p!.WaitForExit();
Assert.That(
p.ExitCode == 0 && "6C2ADC1F69281ABBD2ED7D6782A208FAA621C868" ==
GetFileSha1(file).Replace("-", string.Empty), Is.True);
}
catch (Exception) {
File.Delete(file);
throw;
}
}
/// <summary>
/// Setup
/// </summary>
[SetUp]
public void Setup() { }
/// <summary>
/// GetFileSha1
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
private static string GetFileSha1(string file)
{
using var fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
return BitConverter.ToString(SHA1.HashData(fs));
}
}