protected override void EstablishContext() { A.CallTo(() => _context.Handle).Returns((IntPtr)1); A.CallTo(() => _context.IsValid()).Returns(true); IntPtr handle; SCardProtocol protocol; A.CallTo(() => _api.Connect(A <IntPtr> ._, A <string> ._, A <SCardShareMode> ._, A <SCardProtocol> ._, out handle, out protocol)) .WithAnyArguments() .Returns(SCardError.Success) .AssignsOutAndRefParametersLazily(_ => new object[] { (IntPtr)123, SCardProtocol.T1 }); A.CallTo(() => _api.Disconnect(A <IntPtr> .Ignored, A <SCardReaderDisposition> .Ignored)) .Returns(SCardError.Success); _sut = new CardHandle(_api, _context); _sut.Connect("MyReader", SCardShareMode.Shared, SCardProtocol.Any); }
/// <inheritdoc /> public void Disconnect(SCardReaderDisposition disconnectExecution) { ThrowIfDisposed(); ThrowOnInvalidCardHandle(); _api.Disconnect( hCard: Handle, dwDisposition: disconnectExecution) .ThrowIfNotSuccess(); Handle = IntPtr.Zero; ReaderName = null; Protocol = SCardProtocol.Unset; Mode = SCardShareMode.Shared; }