public async Task WhenConnectingByUrlWithUsername_ThenSuggestedUsernameForCredentialGenerationIsThisUsername() { var taskDialog = new Mock <ITaskDialog>(); this.serviceRegistry.AddSingleton <ITaskDialog>(taskDialog.Object); taskDialog.Setup(t => t.ShowOptionsTaskDialog( It.IsAny <IWin32Window>(), It.IsAny <IntPtr>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <IList <string> >(), It.IsAny <string>(), out It.Ref <bool> .IsAny)).Returns(0); // Generate new credentials var credentialsService = new Mock <ICredentialsService>(); credentialsService.Setup(s => s.GenerateCredentialsAsync( It.IsAny <IWin32Window>(), It.IsAny <VmInstanceReference>(), It.IsAny <string>())).Returns(Task.FromResult(new NetworkCredential("user", "password"))); this.serviceRegistry.AddSingleton <ICredentialsService>(credentialsService.Object); var service = new RemoteDesktopConnectionService(this.serviceRegistry); await service.ActivateOrConnectInstanceWithCredentialPromptAsync( null, IapRdpUrl.FromString("iap-rdp:///project/us-central-1/instance?username=john%20doe")); credentialsService.Verify(s => s.GenerateCredentialsAsync( It.IsAny <IWin32Window>(), It.IsAny <VmInstanceReference>(), It.Is <string>(user => user == "john doe")), Times.Once); }
public async Task WhenConnectingByUrlWithoutUsername_ThenConnectionIsMadeWithoutUsername() { var taskDialog = new Mock <ITaskDialog>(); this.serviceRegistry.AddSingleton <ITaskDialog>(taskDialog.Object); taskDialog.Setup(t => t.ShowOptionsTaskDialog( It.IsAny <IWin32Window>(), It.IsAny <IntPtr>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <IList <string> >(), It.IsAny <string>(), out It.Ref <bool> .IsAny)).Returns(1); // Enter existing credentials var remoteDesktopService = new Mock <IRemoteDesktopService>(); remoteDesktopService.Setup(s => s.Connect( It.IsAny <VmInstanceReference>(), "localhost", It.IsAny <ushort>(), It.IsAny <VmInstanceConnectionSettings>())).Returns <IRemoteDesktopSession>(null); this.serviceRegistry.AddSingleton <IRemoteDesktopService>(remoteDesktopService.Object); var service = new RemoteDesktopConnectionService(this.serviceRegistry); await service.ActivateOrConnectInstanceWithCredentialPromptAsync( null, IapRdpUrl.FromString("iap-rdp:///project/us-central-1/instance")); remoteDesktopService.Verify(s => s.Connect( It.IsAny <VmInstanceReference>(), "localhost", It.IsAny <ushort>(), It.Is <VmInstanceConnectionSettings>(i => i.Username == null)), Times.Once); }