mattercontrol/original/Tests/MatterControl.AutomationTests/PrinterConnectionTests.cs

48 lines
1.7 KiB
C#

using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MatterHackers.Agg.UI;
using MatterHackers.GuiAutomation;
using MatterHackers.MatterControl.PrinterCommunication;
using MatterHackers.MatterControl.PrinterCommunication.Io;
using MatterHackers.MatterControl.SlicerConfiguration;
using MatterHackers.PrinterEmulator;
using MatterHackers.VectorMath;
using NUnit.Framework;
using static MatterHackers.MatterControl.PrinterCommunication.PrinterConnection;
using TestInvoker;
namespace MatterHackers.MatterControl.Tests.Automation
{
[TestFixture, Category("MatterControl.UI.Automation")]
public class PrinterConnectionTests
{
[Test, ChildProcessTest]
public async Task PrinterDisconnectedOnTabClose()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
// Create and connect to Airwolf via emulator port
using (var emulator = testRunner.LaunchAndConnectToPrinterEmulator())
{
var printer = testRunner.FirstPrinter();
// Ensure connected
Assert.AreEqual(CommunicationStates.Connected, printer.Connection.CommunicationState, "Printer should be Connected after LaunchAndConnectToPrinterEmulator");
// Close Printer
testRunner.CloseFirstPrinterTab();
// Ensure disconnected
testRunner.WaitFor(() => printer.Connection.CommunicationState == PrinterCommunication.CommunicationStates.Disconnected);
Assert.AreEqual(CommunicationStates.Disconnected, printer.Connection.CommunicationState, "Printer should be Disconnected after closing printer tab");
Assert.AreEqual(0, ReadThread.NumRunning, "No ReadThread instances should be running when only printer Disconnected");
}
return Task.CompletedTask;
}, maxTimeToRun: 120);
}
}
}