Files
Watermark.Net/UnitTest/UnitTest.cs
2026-05-27 21:49:34 +03:00

180 lines
6.3 KiB
C#

using SixLabors.Fonts;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using Watermark.Net.src.WatermarkNet.Core;
using Watermark.Net.src.WatermarkNet.Enums;
using Watermark.Net.src.WatermarkNet.Models.Definitions;
namespace UnitTest
{
[TestClass]
public class UnitTest
{
[TestMethod]
public void TextWatermarkLegacyTest()
{
var watermarker = new Watermarker();
var availableFont = SystemFonts.Families.FirstOrDefault();
if (availableFont == default)
{
throw new Exception("No available fonts found in the system");
}
var watermark = new TextWatermark{
Font = availableFont.CreateFont(1),
Text = "Test",
Style = { Color = Color.White },
Layout = { Position = ImagePosition.BottomCenter , RotateAngle = 90 }
};
var resultedImage = watermarker.ProcessImage("TestImages/2.png", "test/text", watermark);
Assert.IsNotNull(resultedImage);
Assert.IsTrue(File.Exists(resultedImage.Path));
}
[TestMethod]
public void ImageWatermarkLegacyTest()
{
var watermarker = new Watermarker();
var watermark = new ImageWatermark {
ImagePath = "TestImages/sample_wm.png",
Layout = { Position = ImagePosition.Center, Scale = 1 },
Style = { Opacity = 1 }
};
var resultedImage = watermarker.ProcessImage("TestImages/2.png", "test/image", watermark);
Assert.IsNotNull(resultedImage);
Assert.IsTrue(File.Exists(resultedImage.Path));
}
[TestMethod]
public void TextWatermarkDirectoryProccessLegacyTest()
{
var watermarker = new Watermarker("test/text/pave");
var availableFont = SystemFonts.Families.FirstOrDefault();
if (availableFont == default)
{
throw new Exception("No available fonts found in the system");
}
var watermark = new TextWatermark {
Text = "Test",
Font = availableFont.CreateFont(1),
Style = { Color = Rgba32.ParseHex("FFFFFF50"), Pave = true },
Layout = { Scale = 1f, Position = ImagePosition.TopLeft }
};
watermarker.ProcessDirectory("TestImages", watermark);
Assert.IsTrue(Directory.GetFiles(watermarker.OutputDir)?.Length > 0);
}
[TestMethod]
public void ImageWatermarkDirectoryProccessLegacyTest()
{
var watermarker = new Watermarker("test/image/pave");
var watermark = new ImageWatermark {
ImagePath = "TestImages/sample_wm.png",
Layout = { Position = ImagePosition.Center, Scale = 1},
Style = { Pave = true, Opacity = 1}
};
watermarker.ProcessDirectory("TestImages", watermark);
Assert.IsTrue(Directory.GetFiles(watermarker.OutputDir)?.Length > 0);
}
[TestMethod]
public void TextWatermarkPipelineTest()
{
var fileManager = new FileManager();
var renderer = new ImageRenderer();
var pipeline = new WatermarkPipeline(fileManager, renderer);
var availableFont = SystemFonts.Families.FirstOrDefault();
if (availableFont == default)
{
throw new Exception("No available fonts found in the system");
}
var watermark = new TextWatermark{
Font = availableFont.CreateFont(1),
Text = "Test",
Style = { Color = Color.White },
Layout = { Position = ImagePosition.BottomCenter , RotateAngle = 90 }
};
var resultedImage = pipeline.ProcessImage("TestImages/2.png", "test/pipeline/text", watermark);
Assert.IsNotNull(resultedImage);
Assert.IsTrue(File.Exists(resultedImage.Path));
}
[TestMethod]
public void ImageWatermarkPipelineTest()
{
var fileManager = new FileManager();
var renderer = new ImageRenderer();
var pipeline = new WatermarkPipeline(fileManager, renderer);
var watermark = new ImageWatermark {
ImagePath = "TestImages/sample_wm.png",
Layout = { Position = ImagePosition.Center, Scale = 1 },
Style = { Opacity = 1 }
};
var resultedImage = pipeline.ProcessImage("TestImages/2.png", "test/pipeline/image", watermark);
Assert.IsNotNull(resultedImage);
Assert.IsTrue(File.Exists(resultedImage.Path));
}
[TestMethod]
public void TextWatermarkDirectoryPipelineTest()
{
var fileManager = new FileManager();
var renderer = new ImageRenderer();
var pipeline = new WatermarkPipeline(fileManager, renderer);
var availableFont = SystemFonts.Families.FirstOrDefault();
if (availableFont == default)
{
throw new Exception("No available fonts found in the system");
}
var watermark = new TextWatermark {
Text = "Test",
Font = availableFont.CreateFont(1),
Style = { Color = Rgba32.ParseHex("FFFFFF50"), Pave = true },
Layout = { Scale = 1f, Position = ImagePosition.TopLeft }
};
var results = pipeline.ProcessDirectory("TestImages", "test/pipeline/text/dir", watermark);
Assert.IsTrue(results.Count > 0);
}
[TestMethod]
public void ImageWatermarkDirectoryPipelineTest()
{
var fileManager = new FileManager();
var renderer = new ImageRenderer();
var pipeline = new WatermarkPipeline(fileManager, renderer);
var watermark = new ImageWatermark {
ImagePath = "TestImages/sample_wm.png",
Layout = { Position = ImagePosition.Center, Scale = 1},
Style = { Pave = true, Opacity = 1}
};
var results = pipeline.ProcessDirectory("TestImages", "test/pipeline/image/dir", watermark);
Assert.IsTrue(results.Count > 0);
}
}
}