Files
Watermark.Net/UnitTest/UnitTest.cs
2025-07-25 22:18:07 +03:00

89 lines
3.1 KiB
C#

using SixLabors.Fonts;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using Watermark.Net.src.WatermarkNet.Core;
using Watermark.Net.src.WatermarkNet.Types;
namespace UnitTest
{
[TestClass]
public class UnitTest
{
[TestMethod]
public void TextWatermarkTest()
{
var watermarker = new Watermarker();
var watermark = new TextWatermark();
var availableFont = SystemFonts.Families.FirstOrDefault();
if (availableFont == default)
{
throw new Exception("No available fonts found in the system");
}
watermark.Text = "Test";
watermark.Color = Color.White;
watermark.Font = availableFont.CreateFont(1);
watermark.Position = Watermark.Net.src.WatermarkNet.Enums.ImagePosition.BottomCenter;
watermark.RotateAngle = 90;
var resultedImage = watermarker.ProcessImage("TestImages/2.png", "test/text", watermark);
Assert.IsTrue(File.Exists(resultedImage.Path));
Assert.IsNotNull(resultedImage);
}
[TestMethod]
public void ImageWatermarkTest()
{
var watermarker = new Watermarker();
var watermark = new ImageWatermark();
watermark.ImagePath = "TestImages/sample_wm.png";
watermark.Position = Watermark.Net.src.WatermarkNet.Enums.ImagePosition.Center;
watermark.Scale = 1;
var resultedImage = watermarker.ProcessImage("TestImages/2.png", "test/image", watermark);
Assert.IsTrue(File.Exists(resultedImage.Path));
Assert.IsNotNull(resultedImage);
}
[TestMethod]
public void TextWatermarkDirectoryProccessTest()
{
var watermarker = new Watermarker("test/text/pave");
var watermark = new TextWatermark();
var availableFont = SystemFonts.Families.FirstOrDefault();
if (availableFont == default)
{
throw new Exception("No available fonts found in the system");
}
watermark.Text = "Test";
watermark.Color = Rgba32.ParseHex("FFFFFF50");
watermark.Font = availableFont.CreateFont(1);
watermark.Scale = 1f;
watermark.Position = Watermark.Net.src.WatermarkNet.Enums.ImagePosition.TopLeft;
watermark.Pave = true;
watermarker.ProcessDirectory("TestImages", watermark);
Assert.IsTrue(Directory.GetFiles(watermarker.OutputDir)?.Length > 0);
}
[TestMethod]
public void ImageWatermarkDirectoryProccessTest()
{
var watermarker = new Watermarker("test/image/pave");
var watermark = new ImageWatermark();
watermark.ImagePath = "TestImages/sample_wm.png";
watermark.Position = Watermark.Net.src.WatermarkNet.Enums.ImagePosition.Center;
watermark.Scale = 1;
watermark.Pave = true;
watermarker.ProcessDirectory("TestImages", watermark);
Assert.IsTrue(Directory.GetFiles(watermarker.OutputDir)?.Length > 0);
}
}
}