Getting interaction volumes to be able to be scripted in automation runner

This commit is contained in:
Lars Brubaker 2017-10-26 17:57:17 -07:00
parent 55e335093d
commit b9cc00c2e9
6 changed files with 86 additions and 43 deletions

View file

@ -233,7 +233,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
}
[Test]
public async Task MirrorUndoDo()
public async Task ValidateDoUndoOnSceneOperations()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
@ -243,55 +243,27 @@ namespace MatterHackers.MatterControl.Tests.Automation
var view3D = testRunner.GetWidgetByName("View3DWidget", out _) as View3DWidget;
var scene1 = view3D.InteractionLayer.Scene;
testRunner.AddDefaultFileToBedplate(partName: "Row Item MatterControl - Coin.stl");
// test z translation
RunDoUndoTest(testRunner, scene1, (scene) =>
{
testRunner.AddDefaultFileToBedplate(partName: "Row Item MatterControl - Coin.stl");
// TODO: assert the part is centered on the bed
testRunner.ClickByName("MatterControl - Coin.stl");
Assert.IsNotNull(scene.SelectedItem);
AddCoinToBed(testRunner, scene);
},
(scene) =>
{
testRunner.ClickByName("Mirror Button");
testRunner.ClickByName("Mirror Button X");
testRunner.DragDropByName("MoveInZControl", "MoveInZControl", offsetDrop: new Point2D(0, 40));
});
// test mirror operations
TestMirrorDoUndo(testRunner, scene1, "Mirror Button X");
TestMirrorDoUndo(testRunner, scene1, "Mirror Button Y");
TestMirrorDoUndo(testRunner, scene1, "Mirror Button Z");
// test drag x y translation
RunDoUndoTest(testRunner, scene1, (scene) =>
{
testRunner.AddSelectedItemToBedplate();
testRunner.Delay(.1);
testRunner.ClickByName("MatterControl - Coin.stl");
Assert.IsNotNull(scene.SelectedItem);
},
(scene) =>
{
testRunner.ClickByName("Mirror Button");
testRunner.ClickByName("Mirror Button Y");
});
RunDoUndoTest(testRunner, scene1, (scene) =>
{
testRunner.AddSelectedItemToBedplate();
testRunner.Delay(.1);
testRunner.ClickByName("MatterControl - Coin.stl");
Assert.IsNotNull(scene.SelectedItem);
},
(scene) =>
{
testRunner.ClickByName("Mirror Button");
testRunner.ClickByName("Mirror Button Z");
});
RunDoUndoTest(testRunner, scene1, (scene) =>
{
testRunner.AddSelectedItemToBedplate();
testRunner.Delay(.1);
testRunner.ClickByName("MatterControl - Coin.stl");
Assert.IsNotNull(scene.SelectedItem);
AddCoinToBed(testRunner, scene);
},
(scene) =>
{
@ -305,6 +277,29 @@ namespace MatterHackers.MatterControl.Tests.Automation
}, overrideWidth: 1300, maxTimeToRun: 200);
}
private static void AddCoinToBed(AutomationRunner testRunner, InteractiveScene scene)
{
testRunner.AddSelectedItemToBedplate();
testRunner.Delay(.1);
// TODO: assert the part is centered on the bed
testRunner.ClickByName("MatterControl - Coin.stl");
Assert.IsNotNull(scene.SelectedItem);
}
private void TestMirrorDoUndo(AutomationRunner testRunner, InteractiveScene scene1, string mirrorButtonName)
{
RunDoUndoTest(testRunner, scene1, (scene) =>
{
AddCoinToBed(testRunner, scene);
},
(scene) =>
{
testRunner.ClickByName("Mirror Button");
testRunner.ClickByName(mirrorButtonName);
});
}
private void RunDoUndoTest(AutomationRunner testRunner,
InteractiveScene scene,
Action<InteractiveScene> InitializeTest,