mirror of
https://github.com/Geckon01/Watermark.Net.git
synced 2026-06-13 01:03:32 +03:00
180 lines
6.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|