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

Commit c01703b

Browse files
Adding unit tests to show data loads as expected
1 parent c249301 commit c01703b

File tree

1 file changed

+76
-4
lines changed

1 file changed

+76
-4
lines changed

test/UnitTests/GitHub.VisualStudio/Services/MetricsTests.cs

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -428,11 +428,54 @@ public class UsageServiceTests : TestBaseClass
428428
private static readonly Guid UserGuid = Guid.NewGuid();
429429
private static readonly string DefaultUserStoreContent = @"{""UserGuid"":""" + UserGuid + @"""}";
430430

431-
private static readonly string DefaultUsageContent = string.Empty;
431+
private static readonly string DefaultUsageContent =
432+
@"{
433+
""LastUpdated"": ""2017-02-24T18:18:52.4298622Z"",
434+
""Model"": {
435+
""Guid"": """ + UserGuid + @""",
436+
""IsGitHubUser"": false,
437+
""IsEnterpriseUser"": false,
438+
""AppVersion"": ""2.4.3.0"",
439+
""VSVersion"": ""14.0.25431.01 Update 3"",
440+
""Lang"": ""en-US"",
441+
""NumberOfStartups"": 0,
442+
""NumberOfStartupsWeek"": 0,
443+
""NumberOfStartupsMonth"": 0,
444+
""NumberOfUpstreamPullRequests"": 0,
445+
""NumberOfClones"": 0,
446+
""NumberOfReposCreated"": 0,
447+
""NumberOfReposPublished"": 0,
448+
""NumberOfGists"": 0,
449+
""NumberOfOpenInGitHub"": 0,
450+
""NumberOfLinkToGitHub"": 0,
451+
""NumberOfLogins"": 1,
452+
""NumberOfOAuthLogins"": 0,
453+
""NumberOfTokenLogins"": 0,
454+
""NumberOfPullRequestsOpened"": 1,
455+
""NumberOfLocalPullRequestsCheckedOut"": 0,
456+
""NumberOfLocalPullRequestPulls"": 0,
457+
""NumberOfLocalPullRequestPushes"": 0,
458+
""NumberOfForkPullRequestsCheckedOut"": 0,
459+
""NumberOfForkPullRequestPulls"": 0,
460+
""NumberOfForkPullRequestPushes"": 0,
461+
""NumberOfSyncSubmodules"": 0,
462+
""NumberOfWelcomeDocsClicks"": 0,
463+
""NumberOfWelcomeTrainingClicks"": 0,
464+
""NumberOfGitHubPaneHelpClicks"": 0,
465+
""NumberOfPRDetailsViewChanges"": 0,
466+
""NumberOfPRDetailsViewFile"": 0,
467+
""NumberOfPRDetailsCompareWithSolution"": 0,
468+
""NumberOfPRDetailsOpenFileInSolution"": 0,
469+
""NumberOfPRDetailsNavigateToEditor"": 0,
470+
""NumberOfPRReviewDiffViewInlineCommentOpen"": 0,
471+
""NumberOfPRReviewDiffViewInlineCommentPost"": 0
472+
}
473+
}
474+
";
432475

433476
private static readonly string LegacyUsageContent =
434477
@"{
435-
""LastUpdated"": ""2018-02-28T12:37:09.4771538Z"",
478+
""LastUpdated"": ""2017-02-24T12:37:09.4771538Z"",
436479
""Model"": {
437480
""IsGitHubUser"": true,
438481
""IsEnterpriseUser"": false,
@@ -472,7 +515,8 @@ public class UsageServiceTests : TestBaseClass
472515
""NumberOfPRReviewDiffViewInlineCommentPost"": 0,
473516
""NumberOfShowCurrentPullRequest"": 2
474517
}
475-
}";
518+
}
519+
";
476520

477521
private string usageFileName;
478522
private string userFileName;
@@ -525,7 +569,35 @@ public async Task GetUserGuidWorks()
525569
}
526570

527571
[Test]
528-
public async Task ReadLocalDataWorksWhenFileMissing()
572+
public async Task GetUserGuidWorksWhenFileMissing()
573+
{
574+
File.Delete(userFileName);
575+
576+
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>(), environment);
577+
var guid = await usageService.GetUserGuid();
578+
Assert.AreNotEqual(guid, Guid.Empty);
579+
}
580+
581+
[Test]
582+
public async Task ReadUsageDataWorks()
583+
{
584+
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>(), environment);
585+
var usageData = await usageService.ReadLocalData();
586+
Assert.AreEqual(usageData.LastUpdated.Date, DateTime.Parse("2017-02-24"));
587+
}
588+
589+
[Test]
590+
public async Task ReadUsageDataWorksWhenLegacyContent()
591+
{
592+
WriteUsageFileContent(LegacyUsageContent);
593+
594+
var usageService = new UsageService(Substitute.For<IGitHubServiceProvider>(), environment);
595+
var usageData = await usageService.ReadLocalData();
596+
Assert.AreEqual(usageData.LastUpdated.Date, DateTime.Parse("2017-02-24"));
597+
}
598+
599+
[Test]
600+
public async Task ReadUsageDataWorksWhenFileMissing()
529601
{
530602
File.Delete(usageFileName);
531603

0 commit comments

Comments
 (0)