示例#1
0
        public async Task WhenConnected_ThenActiveSessionIsSetAndTryActivateReturnsTrue(
            [WindowsInstance(MachineType = MachineTypeForRdp)] ResourceTask <InstanceLocator> testInstance,
            [Credential(Role = PredefinedRole.IapTunnelUser)] ResourceTask <ICredential> credential)
        {
            var locator = await testInstance;

            using (var tunnel = RdpTunnel.Create(
                       locator,
                       await credential))
                using (var gceAdapter = new ComputeEngineAdapter(this.serviceProvider.GetService <IAuthorizationAdapter>()))
                {
                    var credentials = await gceAdapter.ResetWindowsUserAsync(
                        locator,
                        CreateRandomUsername(),
                        TimeSpan.FromSeconds(60),
                        CancellationToken.None);

                    var settings = VmInstanceConnectionSettings.CreateNew(
                        locator.ProjectId,
                        locator.Name);
                    settings.Username.StringValue = credentials.UserName;
                    settings.Password.Value       = credentials.SecurePassword;

                    // Connect
                    var broker = new RemoteDesktopSessionBroker(this.serviceProvider);

                    IRemoteDesktopSession session = null;
                    AssertRaisesEvent <SessionStartedEvent>(
                        () => session = broker.Connect(
                            locator,
                            "localhost",
                            (ushort)tunnel.LocalPort,
                            settings));

                    Assert.IsNull(this.ExceptionShown);

                    // Verify session is connected.
                    Assert.IsTrue(broker.IsConnected(locator));
                    Assert.AreSame(session, broker.ActiveSession);
                    Assert.IsTrue(broker.TryActivate(locator));

                    // Verify dummy session is not connected.
                    Assert.IsFalse(broker.TryActivate(SampleLocator));
                    Assert.IsFalse(broker.IsConnected(SampleLocator));

                    AssertRaisesEvent <SessionEndedEvent>(
                        () => session.Close());
                }
        }
示例#2
0
        public void WhenNotConnected_ThenTryActivateReturnsFalse()
        {
            var sampleLocator = new InstanceLocator("project", "zone", "instance");
            var broker        = new RemoteDesktopSessionBroker(this.serviceProvider);

            Assert.IsFalse(broker.TryActivate(sampleLocator));
        }
示例#3
0
        public void WhenNotConnected_ThenActiveSessionIsNullAndTryActivateReturnsFails()
        {
            var broker = new RemoteDesktopSessionBroker(this.serviceProvider);

            Assert.IsFalse(broker.IsConnected(SampleLocator));
            Assert.IsFalse(broker.TryActivate(SampleLocator));
        }