using System.ComponentModel;
|
using NUnit.Framework;
|
namespace OpenTap.UnitTests
|
{
|
[TestFixture]
|
public class TestStepListTest
|
{
|
|
public class ReplaceMyselfStep : TestStep
|
{
|
[Display("Replaced Times")]
|
public int ReplacedTimes { get; set; }
|
|
[Browsable(true)]
|
public void ReplaceMe2()
|
{
|
ReplaceMe();
|
}
|
|
|
public ReplaceMyselfStep ReplaceMe()
|
{
|
var newStep = new ReplaceMyselfStep()
|
{
|
Name = this.Name,
|
ReplacedTimes = ReplacedTimes + 1,
|
Id = Id,
|
Parent = Parent
|
|
};
|
var parent = Parent;
|
var idx = parent.ChildTestSteps.IndexOf(this);
|
parent.ChildTestSteps[idx] = newStep;
|
return newStep;
|
}
|
|
public override void Run()
|
{
|
|
}
|
}
|
|
[Test]
|
public void TestEvents()
|
{
|
var plan = new TestPlan();
|
var step = new ReplaceMyselfStep();
|
plan.ChildTestSteps.Add(step);
|
var step2 = new ReplaceMyselfStep();
|
plan.ChildTestSteps.Add(step2);
|
|
plan.ChildTestSteps.ChildStepsChanged += ChildTestStepsOnChildStepsChanged;
|
bool stepsChanged = false;
|
void ChildTestStepsOnChildStepsChanged(TestStepList senderlist, TestStepList.ChildStepsChangedAction action, ITestStep testStep, int index)
|
{
|
Assert.AreEqual(plan.ChildTestSteps, senderlist);
|
stepsChanged = true;
|
Assert.AreEqual(TestStepList.ChildStepsChangedAction.SetStep, action);
|
Assert.AreEqual(1, index);
|
Assert.IsTrue(testStep == senderlist[index]);
|
}
|
step2 = step2.ReplaceMe();
|
|
Assert.IsTrue(stepsChanged);
|
plan.ChildTestSteps.ChildStepsChanged -= ChildTestStepsOnChildStepsChanged;
|
|
plan.ChildTestSteps.ChildStepsChanged += ChildTestStepsOnChildStepsChanged2;
|
|
bool stepsChanged2 = false;
|
void ChildTestStepsOnChildStepsChanged2(TestStepList senderlist, TestStepList.ChildStepsChangedAction action, ITestStep testStep, int index)
|
{
|
Assert.AreEqual(plan.ChildTestSteps, senderlist);
|
stepsChanged2 = true;
|
Assert.AreEqual(TestStepList.ChildStepsChangedAction.MovedStep, action);
|
Assert.AreEqual(1, index);
|
Assert.IsTrue(testStep == senderlist[index]);
|
Assert.IsTrue(step2 == senderlist[0]);
|
Assert.IsTrue(step == senderlist[1]);
|
}
|
plan.ChildTestSteps.Move(0,1);
|
Assert.IsTrue(stepsChanged2);
|
}
|
|
}
|
}
|