Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 74b9b63

Browse files
committed
Add unit test for #309
Confirmed that the unit test fails on master but passes with the fix.
1 parent 427f206 commit 74b9b63

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
using System;
2+
using System.Net;
3+
using System.Reactive.Linq;
4+
using System.Reactive.Subjects;
5+
using GitHub.Authentication;
6+
using GitHub.Info;
7+
using GitHub.Models;
8+
using GitHub.Primitives;
9+
using GitHub.Services;
10+
using GitHub.ViewModels;
11+
using NSubstitute;
12+
using Octokit;
13+
using ReactiveUI;
14+
using Xunit;
15+
16+
public class LoginControlViewModelTests
17+
{
18+
public class TheAuthenticationResultsCommand : TestBaseClass
19+
{
20+
[Fact]
21+
public async void AllowsLoginFromEnterpriseAfterGitHubLoginHasFailed()
22+
{
23+
var repositoryHosts = Substitute.For<IRepositoryHosts>();
24+
25+
var gitHubLogin = Substitute.For<ILoginToGitHubViewModel>();
26+
var gitHubLoginCommand = ReactiveCommand.CreateAsyncObservable(_ =>
27+
Observable.Return(AuthenticationResult.CredentialFailure));
28+
gitHubLogin.Login.Returns(gitHubLoginCommand);
29+
30+
var enterpriseLogin = Substitute.For<ILoginToGitHubForEnterpriseViewModel>();
31+
var enterpriseLoginCommand = ReactiveCommand.CreateAsyncObservable(_ =>
32+
Observable.Return(AuthenticationResult.Success));
33+
enterpriseLogin.Login.Returns(enterpriseLoginCommand);
34+
35+
var loginViewModel = new LoginControlViewModel(repositoryHosts, gitHubLogin, enterpriseLogin);
36+
var success = false;
37+
38+
loginViewModel.AuthenticationResults
39+
.Where(x => x == AuthenticationResult.Success)
40+
.Subscribe(_ => success = true);
41+
42+
await gitHubLoginCommand.ExecuteAsync();
43+
await enterpriseLoginCommand.ExecuteAsync();
44+
45+
Assert.True(success);
46+
}
47+
}
48+
}
49+

src/UnitTests/UnitTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@
163163
<Compile Include="GitHub.App\Services\GitClientTests.cs" />
164164
<Compile Include="GitHub.App\Services\RepositoryCloneServiceTests.cs" />
165165
<Compile Include="GitHub.App\Services\RepositoryCreationServiceTests.cs" />
166+
<Compile Include="GitHub.App\ViewModels\LoginControlViewModelTests.cs" />
166167
<Compile Include="GitHub.App\ViewModels\LoginToGitHubViewModelTests.cs" />
167168
<Compile Include="GitHub.App\ViewModels\RepositoryCloneViewModelTests.cs" />
168169
<Compile Include="GitHub.App\ViewModels\RepositoryCreationViewModelTests.cs" />

0 commit comments

Comments
 (0)