48 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|