public void GivenConnected_WhenDispose_ThenAllPortsDisposed() { // Arrange var config = new PrinterConfigurationModel() { Port = "com9", BaudRate = 1001 }; Action <SerialPortAdapterRef, string> callback = delegate(SerialPortAdapterRef portRef, string data) { }; var sut = new SerialPortAdapter <TestableSerialPort>(); var portRef = sut.Connect( config, callback); var port = (TestableSerialPort)sut.GetSerialPort(portRef); // Act sut.Dispose(); // Assert Assert.Empty(sut.PortRefs); Assert.True(port.Disposed); }