Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 53662ce

Browse files
authored
Merge pull request #110 from github-for-unity/features/keychain
Exposing a list of Hosts keys through IKeychain
2 parents b2b607b + 4dc4595 commit 53662ce

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed

src/GitHub.Api/Application/ApplicationManagerBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ private async Task LoadKeychain()
142142
{
143143
Logger.Trace("Loading Keychain");
144144

145-
var firstConnection = Platform.Keychain.Connections.FirstOrDefault();
145+
var firstConnection = Platform.Keychain.Hosts.FirstOrDefault();
146146
if (firstConnection == null)
147147
{
148148
Logger.Trace("No Host Found");

src/GitHub.Api/Authentication/IKeychain.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ interface IKeychain
1212
void UpdateToken(UriString host, string token);
1313
void SetCredentials(ICredential credential);
1414
void Initialize();
15-
IList<UriString> Connections { get; }
15+
Connection[] Connections { get; }
16+
IList<UriString> Hosts { get; }
1617
bool HasKeys { get; }
1718
void SetToken(UriString host, string token);
1819
}

src/GitHub.Api/Authentication/Keychain.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,9 @@ public void UpdateToken(UriString host, string token)
225225
keychainItem.UpdateToken(token);
226226
}
227227

228-
public IList<UriString> Connections => connectionCache.Keys.ToArray();
228+
public Connection[] Connections => connectionCache.Values.ToArray();
229+
230+
public IList<UriString> Hosts => connectionCache.Keys.ToArray();
229231

230232
public bool HasKeys => connectionCache.Any();
231233
}

src/tests/UnitTests/Authentication/KeychainTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void ShouldInitializeWhenCacheDoesNotExist()
4848
credentialManager.DidNotReceive().Save(Arg.Any<ICredential>());
4949

5050
keychain.HasKeys.Should().BeFalse();
51-
keychain.Connections.Should().BeEmpty();
51+
keychain.Hosts.Should().BeEmpty();
5252
}
5353

5454
[Test]
@@ -88,7 +88,7 @@ public void ShouldInitializeWhenCacheInvalid()
8888
credentialManager.DidNotReceive().Save(Arg.Any<ICredential>());
8989

9090
keychain.HasKeys.Should().BeFalse();
91-
keychain.Connections.Should().BeEmpty();
91+
keychain.Hosts.Should().BeEmpty();
9292
}
9393

9494
[Test]
@@ -130,7 +130,7 @@ public void ShouldInitializeWhenCacheExists()
130130
credentialManager.DidNotReceive().Save(Arg.Any<ICredential>());
131131

132132
keychain.HasKeys.Should().BeTrue();
133-
keychain.Connections.Should().BeEquivalentTo(hostUri);
133+
keychain.Hosts.Should().BeEquivalentTo(hostUri);
134134
}
135135

136136
[Test]
@@ -177,7 +177,7 @@ public void ShouldLoadFromConnectionManager()
177177
fileSystem.DidNotReceive().WriteAllText(Args.String, Args.String);
178178
fileSystem.DidNotReceive().WriteAllLines(Args.String, Arg.Any<string[]>());
179179

180-
var uriString = keychain.Connections.FirstOrDefault();
180+
var uriString = keychain.Hosts.FirstOrDefault();
181181
var keychainAdapter = keychain.Load(uriString).Result;
182182
keychainAdapter.Credential.Username.Should().Be(username);
183183
keychainAdapter.Credential.Token.Should().Be(token);
@@ -227,7 +227,7 @@ public void ShouldDeleteFromCacheWhenLoadReturnsNullFromConnectionManager()
227227
fileSystem.DidNotReceive().WriteAllText(Args.String, Args.String);
228228
fileSystem.ClearReceivedCalls();
229229

230-
var uriString = keychain.Connections.FirstOrDefault();
230+
var uriString = keychain.Hosts.FirstOrDefault();
231231
var keychainAdapter = keychain.Load(uriString).Result;
232232
keychainAdapter.Credential.Should().BeNull();
233233

@@ -302,7 +302,7 @@ public void ShouldDeleteFromCacheWhenLoadReturnsNullFromConnectionManagerDueToUs
302302

303303
fileSystem.ClearReceivedCalls();
304304

305-
var uriString = keychain.Connections.FirstOrDefault();
305+
var uriString = keychain.Hosts.FirstOrDefault();
306306
var keychainAdapter = keychain.Load(uriString).Result;
307307
keychainAdapter.Credential.Should().BeNull();
308308

@@ -364,7 +364,7 @@ public void ShouldConnectSetCredentialsTokenAndSave()
364364
credentialManager.DidNotReceive().Save(Arg.Any<ICredential>());
365365

366366
keychain.HasKeys.Should().BeFalse();
367-
keychain.Connections.Should().BeEmpty();
367+
keychain.Hosts.Should().BeEmpty();
368368

369369
var keychainAdapter = keychain.Connect(hostUri);
370370

@@ -450,7 +450,7 @@ public void ShouldConnectSetCredentialsAndClear()
450450
credentialManager.DidNotReceive().Save(Arg.Any<ICredential>());
451451

452452
keychain.HasKeys.Should().BeFalse();
453-
keychain.Connections.Should().BeEmpty();
453+
keychain.Hosts.Should().BeEmpty();
454454

455455
var keychainAdapter = keychain.Connect(hostUri);
456456

0 commit comments

Comments
 (0)