public void TestActionArgInheritence()
{
var temp = Path.GetTempFileName();
var outFileName = "outputFileName";
double from = 10, to = 20;
var args = new string[] { "clip", temp, outFileName, "-from", from + "", "-to", to + "" };
var parsed = Args.ParseAction<VideoEncoderArgs>(args);
Assert.IsNull(parsed.Args.EncodeArgs);
Assert.IsNotNull(parsed.Args.ClipArgs);
Assert.AreEqual(temp, parsed.Args.ClipArgs.Source);
Assert.AreEqual(outFileName, parsed.Args.ClipArgs.Output);
Assert.AreEqual(Encoder.Avi, parsed.Args.ClipArgs.Encoder);
Assert.AreEqual(from, parsed.Args.ClipArgs.From);
Assert.AreEqual(to, parsed.Args.ClipArgs.To);
bool called = false;
parsed.Args.ClipArgs.Callback = () =>
{
called = true;
};
Assert.IsFalse(called);
parsed.Invoke();
Assert.IsTrue(called);
}