mirror of
https://github.com/revenz/FileFlowsPlugins.git
synced 2026-01-04 10:19:30 -06:00
203 lines
5.8 KiB
C#
203 lines
5.8 KiB
C#
#if(DEBUG)
|
|
|
|
using FileFlows.BasicNodes.Functions;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace BasicNodes.Tests;
|
|
|
|
[TestClass]
|
|
public class MatchesTests : TestBase
|
|
{
|
|
[TestMethod]
|
|
public void Matches_Math()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Size}", "<=100KB"),
|
|
new("{file.Size}", ">100KB"),
|
|
new("{file.Size}", ">10MB"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Size"] = 120_000; // 120KB
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(2, result);
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
public void Matches_MathFailString()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Size}", "<=100KB"),
|
|
new("{file.Size}", ">100KB"),
|
|
new("{file.Size}", ">10MB"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Size"] = "Some String"; // 120KB
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(4, result);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Matches_EqualsOne()
|
|
{
|
|
foreach (var test in new[]
|
|
{
|
|
((object)1, "=1"),
|
|
((object)"1", "=1"),
|
|
((object)1, "1"),
|
|
((object)"1", "1"),
|
|
})
|
|
{
|
|
Matches ele = new();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{myVariable}", test.Item2)
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["myVariable"] = test.Item1;
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(1, result);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Matches_String()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Name}", "nopetriggerthis"),
|
|
new("{file.Name}", "DontTriggerThis"),
|
|
new("{file.Name}", "TriggerThis"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Name"] = "TriggerThis";
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(3, result);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Matches_NoMatch()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Name}", "triggerthis"),
|
|
new("{file.Name}", "DontTriggerThis"),
|
|
new("{file.Name}", "TriggerThis"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Name"] = "Nothing";
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(4, result);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Matches_Regex()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Name}", "/triggerthis/"),
|
|
new("{file.Name}", "/.*batman.*/"),
|
|
new("{file.Name}", "/TriggerThis/"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Name"] = "Superman vs Batman (2017)";
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(2, result);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Matches_True()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Name}", "triggerthis"),
|
|
new("{file.Deleted}", "true"),
|
|
new("{file.Name}", "TriggerThis"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Deleted"] = true;
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(2, result);
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
public void Matches_True_1()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Name}", "triggerthis"),
|
|
new("{file.Deleted}", "true"),
|
|
new("{file.Name}", "TriggerThis"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Deleted"] = 1;
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(2, result);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Matches_False()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Name}", "triggerthis"),
|
|
new("{file.Deleted}", "false"),
|
|
new("{file.Name}", "TriggerThis"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Deleted"] = false;
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(2, result);
|
|
}
|
|
|
|
|
|
[TestMethod]
|
|
public void Matches_False_0()
|
|
{
|
|
Matches ele = new ();
|
|
ele.MatchConditions = new()
|
|
{
|
|
new("{file.Name}", "triggerthis"),
|
|
new("{file.Deleted}", "false"),
|
|
new("{file.Name}", "TriggerThis"),
|
|
};
|
|
var args = new FileFlows.Plugin.NodeParameters(null, Logger,
|
|
false, string.Empty, new LocalFileService());
|
|
args.Variables["file.Deleted"] = 0;
|
|
|
|
var result = ele.Execute(args);
|
|
Assert.AreEqual(2, result);
|
|
}
|
|
}
|
|
|
|
|
|
#endif |