コード例 #1
0
        public void RetrievesTheStatisticsAsExpected()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasGetConnectStatus = new Mock <IRasGetConnectStatus>();

            var rasConnectionStatistics    = new Mock <RasConnectionStatistics>();
            var rasGetConnectionStatistics = new Mock <IRasGetConnectionStatistics>();
            var rasHangUp = new Mock <IRasHangUp>();
            var rasClearConnectionStatistics = new Mock <IRasClearConnectionStatistics>();

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, rasGetConnectStatus.Object, rasGetConnectionStatistics.Object, rasHangUp.Object, rasClearConnectionStatistics.Object);

            rasGetConnectionStatistics.Setup(o => o.GetConnectionStatistics(target)).Returns(rasConnectionStatistics.Object).Verifiable();

            var result = target.GetStatistics();

            Assert.AreEqual(rasConnectionStatistics.Object, result);
            rasGetConnectionStatistics.Verify();
        }
コード例 #2
0
        public void MustReturnTrueForAllUsers()
        {
            var target = new RasConnectionOptions(RASCF.AllUsers);

            Assert.True(target.AvailableToAllUsers);
            Assert.False(target.UsingDefaultCredentials);
            Assert.False(target.IsOwnerKnown);
            Assert.False(target.IsOwnerCurrentUser);
        }
コード例 #3
0
ファイル: RasConnectionTest.cs プロジェクト: o14547/DotRas
        public void ConnectionOptionsNullTest()
        {
            RasConnection target = new RasConnection();

            target.ConnectionOptions = null;

            RasConnectionOptions actual = target.ConnectionOptions;

            Assert.IsNotNull(actual);
        }
コード例 #4
0
        /// <summary>
        /// Sets the connection options on a <see cref="RasConnection"/> for the flags specified.
        /// </summary>
        /// <param name="connection">The connection whose connection options to set.</param>
        /// <param name="value">The flags of the entry.</param>
        public static void SetRasConnectionOptions(RasConnection connection, NativeMethods.RASCF value)
        {
            if (connection != null)
            {
                RasConnectionOptions options = connection.ConnectionOptions;

                options.AllUsers          = Utilities.HasFlag(value, NativeMethods.RASCF.AllUsers);
                options.GlobalCredentials = Utilities.HasFlag(value, NativeMethods.RASCF.GlobalCredentials);
                options.OwnerKnown        = Utilities.HasFlag(value, NativeMethods.RASCF.OwnerKnown);
                options.OwnerMatch        = Utilities.HasFlag(value, NativeMethods.RASCF.OwnerMatch);
            }
        }
コード例 #5
0
        public void ConstructorThrowsExceptionWhenPhoneBookIsWhitespace()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            Assert.Throws <ArgumentNullException>(() => _ = new RasConnection(handle, device, entryName, "             ", entryId, options, sessionId, correlationId, services.Object));
        }
コード例 #6
0
        public void ConstructorThrowsExceptionWhenDeviceIsNull()
        {
            var handle        = new IntPtr(1);
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            Assert.Throws <ArgumentNullException>(() => _ = new RasConnection(handle, null, entryName, phoneBook, entryId, options, sessionId, correlationId, services.Object));
        }
コード例 #7
0
        public void ReturnTheCorrelationId()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, services.Object);

            Assert.AreEqual(correlationId, target.CorrelationId);
        }
コード例 #8
0
ファイル: RasConnectionTest.cs プロジェクト: mogikanin/DotRas
        public void ConnectionOptionsTest()
        {
            var expected = new RasConnectionOptions()
            {
                AllUsers = true
            };

            var target = new RasConnection();

            target.ConnectionOptions = expected;

            var actual = target.ConnectionOptions;

            Assert.AreSame(expected, actual);
        }
コード例 #9
0
        public void ConstructorThrowsExceptionWhenPhoneBookIsWhitespace()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasGetConnectStatus        = new Mock <IRasGetConnectStatus>();
            var rasGetConnectionStatistics = new Mock <IRasGetConnectionStatistics>();
            var rasHangUp = new Mock <IRasHangUp>();
            var rasClearConnectionStatistics = new Mock <IRasClearConnectionStatistics>();

            Assert.Throws <ArgumentNullException>(() =>
            {
                _ = new RasConnection(handle, device, entryName, "             ", entryId, options, sessionId, correlationId, rasGetConnectStatus.Object, rasGetConnectionStatistics.Object, rasHangUp.Object, rasClearConnectionStatistics.Object);
            });
        }
コード例 #10
0
        public void ReturnTheCorrelationId()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasGetConnectStatus        = new Mock <IRasGetConnectStatus>();
            var rasGetConnectionStatistics = new Mock <IRasGetConnectionStatistics>();
            var rasHangUp = new Mock <IRasHangUp>();
            var rasClearConnectionStatistics = new Mock <IRasClearConnectionStatistics>();

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, rasGetConnectStatus.Object, rasGetConnectionStatistics.Object, rasHangUp.Object, rasClearConnectionStatistics.Object);

            Assert.AreEqual(correlationId, target.CorrelationId);
        }
コード例 #11
0
        public async Task DisconnectAsyncShouldOptionallyCloseAllReferences()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasHangUp = new Mock <IRasHangUp>();

            services.Setup(o => o.GetService(typeof(IRasHangUp))).Returns(rasHangUp.Object);

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, services.Object);
            await target.DisconnectAsync(CancellationToken.None, false);

            rasHangUp.Verify(o => o.HangUpAsync(target, false, CancellationToken.None), Times.Once);
        }
コード例 #12
0
        public void ConstructorThrowsExceptionWhenDeviceIsNull()
        {
            var handle        = new IntPtr(1);
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasGetConnectStatus        = new Mock <IRasGetConnectStatus>();
            var rasGetConnectionStatistics = new Mock <IRasGetConnectionStatistics>();
            var rasHangUp = new Mock <IRasHangUp>();
            var rasClearConnectionStatistics = new Mock <IRasClearConnectionStatistics>();

            Assert.Throws <ArgumentNullException>(() =>
            {
                var unused = new RasConnection(handle, null, entryName, phoneBook, entryId, options, sessionId, correlationId, rasGetConnectStatus.Object, rasGetConnectionStatistics.Object, rasHangUp.Object, rasClearConnectionStatistics.Object);
            });
        }
コード例 #13
0
        public async Task DisconnectAsyncShouldCloseAllReferencesByDefault()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasGetConnectStatus        = new Mock <IRasGetConnectStatus>();
            var rasGetConnectionStatistics = new Mock <IRasGetConnectionStatistics>();
            var rasHangUp = new Mock <IRasHangUp>();
            var rasClearConnectionStatistics = new Mock <IRasClearConnectionStatistics>();

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, rasGetConnectStatus.Object, rasGetConnectionStatistics.Object, rasHangUp.Object, rasClearConnectionStatistics.Object);
            await target.DisconnectAsync(CancellationToken.None);

            rasHangUp.Verify(o => o.HangUpAsync(target, true, CancellationToken.None), Times.Once);
        }
コード例 #14
0
        public void DisconnectWithoutToken()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasHangUp = new Mock <IRasHangUp>();

            services.Setup(o => o.GetService(typeof(IRasHangUp))).Returns(rasHangUp.Object);

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, services.Object);

            target.Disconnect();

            rasHangUp.Verify(o => o.HangUpAsync(target, It.IsAny <bool>(), CancellationToken.None), Times.Once);
        }
コード例 #15
0
        public void ClearsTheConnectionStatisticsAsExpected()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var rasGetConnectStatus        = new Mock <IRasGetConnectStatus>();
            var rasGetConnectionStatistics = new Mock <IRasGetConnectionStatistics>();
            var rasHangUp = new Mock <IRasHangUp>();
            var rasClearConnectionStatistics = new Mock <IRasClearConnectionStatistics>();

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, rasGetConnectStatus.Object, rasGetConnectionStatistics.Object, rasHangUp.Object, rasClearConnectionStatistics.Object);

            target.ClearStatistics();

            rasClearConnectionStatistics.Verify(o => o.ClearConnectionStatistics(target), Times.Once);
        }
コード例 #16
0
        public void DisconnectTheConnectionAsExpected()
        {
            var handle        = new IntPtr(1);
            var device        = new TestDevice("Test");
            var entryName     = "Test";
            var phoneBook     = @"C:\Test.pbk";
            var entryId       = Guid.NewGuid();
            var options       = new RasConnectionOptions(Ras.RASCF.AllUsers);
            var sessionId     = new Luid(1, 1);
            var correlationId = Guid.NewGuid();

            var cancellationToken = CancellationToken.None;

            var rasGetConnectStatus        = new Mock <IRasGetConnectStatus>();
            var rasGetConnectionStatistics = new Mock <IRasGetConnectionStatistics>();
            var rasHangUp = new Mock <IRasHangUp>();
            var rasClearConnectionStatistics = new Mock <IRasClearConnectionStatistics>();

            var target = new RasConnection(handle, device, entryName, phoneBook, entryId, options, sessionId, correlationId, rasGetConnectStatus.Object, rasGetConnectionStatistics.Object, rasHangUp.Object, rasClearConnectionStatistics.Object);

            target.Disconnect(CancellationToken.None);

            rasHangUp.Verify(o => o.HangUpAsync(target, It.IsAny <bool>(), cancellationToken));
        }