namespace ImageProcessor.UnitTests { using System; using System.Drawing; using ImageProcessor.Imaging; using ImageProcessor.Processors; using NUnit.Framework; [TestFixture ()] public class RegularExpressionUnitTests { /// /// The alpha regex unit test. /// [Test ()] public void TestAlphaRegex() { const string Querystring = "alpha=56"; const int Expected = 56; Alpha alpha = new Alpha(); alpha.MatchRegexIndex(Querystring); int actual = alpha.DynamicParameter; Assert.AreEqual(Expected, actual); } /// /// The brightness regex unit test. /// [Test ()] public void TestBrightnessRegex() { const string Querystring = "brightness=56"; const int Expected = 56; Brightness brightness = new Brightness(); brightness.MatchRegexIndex(Querystring); int actual = brightness.DynamicParameter; Assert.AreEqual(Expected, actual); } /// /// The contrast regex unit test. /// [Test ()] public void TestContrastRegex() { const string Querystring = "contrast=56"; const int Expected = 56; Contrast contrast = new Contrast(); contrast.MatchRegexIndex(Querystring); int actual = contrast.DynamicParameter; Assert.AreEqual(Expected, actual); } /// /// The rotate regex unit test. /// [Test ()] public void TestCropRegex() { const string Querystring = "crop=0,0,150,300"; CropLayer expected = new CropLayer(0, 0, 150, 300, CropMode.Pixels); Crop crop = new Crop(); crop.MatchRegexIndex(Querystring); CropLayer actual = crop.DynamicParameter; Assert.AreEqual(expected, actual); } /// /// The filter regex unit test. /// [Test ()] public void TestFilterRegex() { // Should really write more for the other filters. const string Querystring = "filter=lomograph"; const string Expected = "lomograph"; Filter filter = new Filter(); filter.MatchRegexIndex(Querystring); string actual = filter.DynamicParameter; Assert.AreEqual(Expected, actual); } /// /// The format regex unit test. /// [Test ()] public void TestFormatRegex() { const string Querystring = "format=gif"; const string Expected = "gif"; Format format = new Format(); format.MatchRegexIndex(Querystring); string actual = format.DynamicParameter; Assert.AreEqual(Expected, actual); } /// /// The quality regex unit test. /// [Test ()] public void TestQualityRegex() { const string Querystring = "quality=56"; const int Expected = 56; Quality quality = new Quality(); quality.MatchRegexIndex(Querystring); int actual = quality.DynamicParameter; Assert.AreEqual(Expected, actual); } /// /// The resize regex unit test. /// [Test ()] public void TestResizeRegex() { const string Querystring = "width=300"; ResizeLayer expected = new ResizeLayer(new Size(300, 0)); Resize resize = new Resize(); resize.MatchRegexIndex(Querystring); ResizeLayer actual = resize.DynamicParameter; Assert.AreEqual(expected, actual); } /// /// The rotate regex unit test. /// [Test ()] public void TestRotateRegex() { const string Querystring = "rotate=270"; RotateLayer expected = new RotateLayer(270, Color.Transparent); Rotate rotate = new Rotate(); rotate.MatchRegexIndex(Querystring); RotateLayer actual = rotate.DynamicParameter; Assert.AreEqual(expected, actual); } /// /// The rounded corners regex unit test. /// [Test ()] public void TestRoundedCornersRegex() { const string Querystring = "roundedcorners=30"; RoundedCornerLayer expected = new RoundedCornerLayer(30, true, true, true, true); RoundedCorners roundedCorners = new RoundedCorners(); roundedCorners.MatchRegexIndex(Querystring); RoundedCornerLayer actual = roundedCorners.DynamicParameter; Assert.AreEqual(expected, actual); } /// /// The rounded corners regex unit test. /// [Test ()] public void TestTintRegex() { const string HexQuerystring = "tint=6aa6cc"; const string RgbaQuerystring = "tint=106,166,204,255"; Color expectedHex = ColorTranslator.FromHtml("#" + "6aa6cc"); Color expectedRgba = Color.FromArgb(255, 106, 166, 204); Tint tint = new Tint(); tint.MatchRegexIndex(HexQuerystring); Color actualHex = tint.DynamicParameter; Assert.AreEqual(expectedHex, actualHex); tint = new Tint(); tint.MatchRegexIndex(RgbaQuerystring); Color actualRgba = tint.DynamicParameter; Assert.AreEqual(expectedRgba, actualRgba); } } }