Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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;
        }