public void LoginModeTracksAvailableConnections() { var connectionManager = Substitute.For <IConnectionManager>(); var connections = new ObservableCollectionEx <IConnection>(); var gitHubLogin = Substitute.For <ILoginToGitHubViewModel>(); var enterpriseLogin = Substitute.For <ILoginToGitHubForEnterpriseViewModel>(); var gitHubConnection = Substitute.For <IConnection>(); var enterpriseConnection = Substitute.For <IConnection>(); connectionManager.Connections.Returns(connections); gitHubConnection.HostAddress.Returns(HostAddress.GitHubDotComHostAddress); enterpriseConnection.HostAddress.Returns(HostAddress.Create("https://enterprise.url")); var loginViewModel = new LoginControlViewModel(connectionManager, gitHubLogin, enterpriseLogin); Assert.Equal(LoginMode.DotComOrEnterprise, loginViewModel.LoginMode); connections.Add(enterpriseConnection); Assert.Equal(LoginMode.DotComOnly, loginViewModel.LoginMode); connections.Add(gitHubConnection); Assert.Equal(LoginMode.None, loginViewModel.LoginMode); connections.RemoveAt(0); Assert.Equal(LoginMode.EnterpriseOnly, loginViewModel.LoginMode); }
public async Task AllowsLoginFromEnterpriseAfterGitHubLoginHasFailed() { var connectionManager = Substitute.For <IConnectionManager>(); var gitHubLogin = Substitute.For <ILoginToGitHubViewModel>(); var gitHubLoginCommand = ReactiveCommand.CreateAsyncObservable(_ => Observable.Return(AuthenticationResult.CredentialFailure)); gitHubLogin.Login.Returns(gitHubLoginCommand); var enterpriseLogin = Substitute.For <ILoginToGitHubForEnterpriseViewModel>(); var enterpriseLoginCommand = ReactiveCommand.CreateAsyncObservable(_ => Observable.Return(AuthenticationResult.Success)); enterpriseLogin.Login.Returns(enterpriseLoginCommand); var loginViewModel = new LoginControlViewModel(connectionManager, gitHubLogin, enterpriseLogin); var success = false; loginViewModel.AuthenticationResults .Where(x => x == AuthenticationResult.Success) .Subscribe(_ => success = true); await gitHubLoginCommand.ExecuteAsync(); await enterpriseLoginCommand.ExecuteAsync(); Assert.True(success); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); LoginControlWindow app = new LoginControlWindow(); LoginControlViewModel context = new LoginControlViewModel(); app.DataContext = context; app.Show(); }
public LoginControl() { InitializeComponent(); LoginModel = new LoginControlViewModel() { Account = "", Pwd = "", IsError = false, IsLogin = false }; this.DataContext = LoginModel; Loaded += UserControl_Loaded; }
public async Task FailedGitHubLoginDoesNotSignalDone() { var connectionManager = Substitute.For <IConnectionManager>(); var gitHubLogin = Substitute.For <ILoginToGitHubViewModel>(); var gitHubLoginCommand = ReactiveCommand.CreateAsyncObservable(_ => Observable.Return(AuthenticationResult.CredentialFailure)); gitHubLogin.Login.Returns(gitHubLoginCommand); var enterpriseLogin = Substitute.For <ILoginToGitHubForEnterpriseViewModel>(); var loginViewModel = new LoginControlViewModel(connectionManager, gitHubLogin, enterpriseLogin); var signalled = false; loginViewModel.Done.Subscribe(_ => signalled = true); await gitHubLoginCommand.ExecuteAsync(); Assert.False(signalled); }
public async Task SucessfulGitHubLoginSignalsDone() { var repositoryHosts = Substitute.For <IRepositoryHosts>(); var gitHubLogin = Substitute.For <ILoginToGitHubViewModel>(); var gitHubLoginCommand = ReactiveCommand.CreateAsyncObservable(_ => Observable.Return(AuthenticationResult.Success)); gitHubLogin.Login.Returns(gitHubLoginCommand); var enterpriseLogin = Substitute.For <ILoginToGitHubForEnterpriseViewModel>(); var loginViewModel = new LoginControlViewModel(repositoryHosts, gitHubLogin, enterpriseLogin); var signalled = false; loginViewModel.Done.Subscribe(_ => signalled = true); await gitHubLoginCommand.ExecuteAsync(); Assert.True(signalled); }
//Command list of window //konstruktor muze byt z nastaveni okna public WindowViewModel(System.Windows.Window p_window) { mWindow = p_window; AuthVM = AuthenticationViewModel.Instance; // autentizace take LoginControlViewModel Temp = new LoginControlViewModel(); Temp.SuccesFullLogin += NavToProfileUser; CurrentPage = Temp; NavCommand = new RelayCommand <string>(OnNav); // Listen out for the window resizing mWindow.StateChanged += (sender, e) => { // Fire off events for all properties that are affected by a resize WindowResized(); }; // Create commands MinimizeCommand = new RelayCommand(() => mWindow.WindowState = WindowState.Minimized); MaximizeCommand = new RelayCommand(() => mWindow.WindowState ^= WindowState.Maximized); CloseCommand = new RelayCommand(() => mWindow.Close()); MenuCommand = new RelayCommand(() => SystemCommands.ShowSystemMenu(mWindow, GetMousePosition())); // Fix window resize issue var resizer = new WindowResizer(mWindow); // Listen out for dock changes resizer.WindowDockChanged += (dock) => { // Store last position mDockPosition = dock; // Fire off resize events WindowResized(); }; }