Files
FileFlowsPlugins/ImageNodes/Tests/ImageTests.cs
2022-05-06 17:09:16 +12:00

114 lines
2.9 KiB
C#

#if(DEBUG)
using FileFlows.ImageNodes.Images;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Runtime.InteropServices;
namespace FileFlows.ImageNodes.Tests;
[TestClass]
public class ImageNodesTests
{
string TestImage1;
string TestImage2;
string TempDir;
public ImageNodesTests()
{
bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
if (isWindows)
{
TestImage1 = @"D:\videos\pictures\image1.jpg";
TestImage2 = @"D:\videos\pictures\image2.png";
TempDir = @"D:\videos\temp";
}
else
{
TestImage1 = "/home/john/Pictures/fileflows.png";
TestImage2 = "/home/john/Pictures/36410427.png";
TempDir = "/home/john/src/temp/";
}
}
[TestMethod]
public void ImageNodes_Basic_ImageFormat()
{
var args = new NodeParameters(TestImage1, new TestLogger(), false, string.Empty)
{
TempPath = TempDir
};
var node = new ImageFormat();
node.Format = IMAGE_FORMAT_GIF;
Assert.AreEqual(1, node.Execute(args));
}
[TestMethod]
public void ImageNodes_Basic_Resize()
{
var args = new NodeParameters(TestImage1, new TestLogger(), false, string.Empty)
{
TempPath = TempDir
};
var node = new ImageResizer();
node.Width = 1000;
node.Height = 500;
node.Mode = ResizeMode.Fill;
Assert.AreEqual(1, node.Execute(args));
}
[TestMethod]
public void ImageNodes_Basic_Resize_Percent()
{
var args = new NodeParameters(TestImage1, new TestLogger(), false, string.Empty)
{
TempPath = TempDir
};
var imgFile = new ImageFile();
imgFile.Execute(args);
int width = imgFile.GetImageInfo(args).Width;
int height = imgFile.GetImageInfo(args).Height;
var node = new ImageResizer();
node.Width = 200;
node.Height = 50;
node.Percent = true;
node.Mode = ResizeMode.Fill;
Assert.AreEqual(1, node.Execute(args));
var img = node.GetImageInfo(args);
Assert.IsNotNull(img);
Assert.AreEqual(width * 2, img.Width);
Assert.AreEqual(height / 2, img.Height);
}
[TestMethod]
public void ImageNodes_Basic_Flip()
{
var args = new NodeParameters(TestImage2, new TestLogger(), false, string.Empty)
{
TempPath = TempDir
};
var node = new ImageFlip();
node.Vertical = false;
Assert.AreEqual(1, node.Execute(args));
}
[TestMethod]
public void ImageNodes_Basic_Rotate()
{
var args = new NodeParameters(TestImage2, new TestLogger(), false, string.Empty)
{
TempPath = TempDir
};
var node = new ImageRotate();
node.Angle = 270;
Assert.AreEqual(1, node.Execute(args));
}
}
#endif