55using System . Linq ;
66using System . Reactive . Disposables ;
77using System . Threading . Tasks ;
8+ using GitHub ;
89using GitHub . Extensions ;
910using GitHub . Models ;
1011using GitHub . Services ;
@@ -208,41 +209,6 @@ await service.Received(1).WriteLocalData(Arg.Is<UsageData>(data =>
208209 ) ) ;
209210 }
210211
211- [ Test ]
212- public async Task UsageServiceWritesAllTheDataCorrectly ( )
213- {
214- var model = CreateUsageModel ( ) ;
215- var serviceProvider = CreateServiceProvider ( ) ;
216- var usageService = CreateUsageService ( model ) ;
217- var targetAndTick = CreateTargetAndGetTick ( serviceProvider , usageService ) ;
218- var vsservices = serviceProvider . GetService < IVSServices > ( ) ;
219- // vsservices.VSVersion.Returns(model.VSVersion);
220-
221- await targetAndTick . Item2 ( ) ;
222-
223- var metricsService = serviceProvider . TryGetService < IMetricsService > ( ) ;
224-
225- var expected = model ;
226- // expected.NumberOfStartups++;
227- // expected.NumberOfStartupsWeek++;
228- // expected.NumberOfStartupsMonth++;
229-
230- // var result = (usageService.ReceivedCalls().First(x => x.GetMethodInfo().Name == "WriteLocalData").GetArguments()[0] as UsageData).Model;
231- // CollectionAssert.AreEquivalent(
232- // ReflectionUtils.GetProperties(expected.GetType()).Select(x => new { x.Name, Value = x.GetValue(expected) }),
233- // ReflectionUtils.GetProperties(result.GetType()).Select(x => new { x.Name, Value = x.GetValue(result) }));
234- }
235-
236- static UsageModel CreateUsageModel ( )
237- {
238- return new UsageModel
239- {
240- Dimensions = new UsageModel . DimensionsModel ( ) ,
241- Measures = new UsageModel . MeasuresModel ( )
242-
243- } ;
244- }
245-
246212 static Tuple < UsageTracker , Func < Task > > CreateTargetAndGetTick (
247213 IGitHubServiceProvider serviceProvider ,
248214 IUsageService service )
@@ -298,95 +264,7 @@ public class UsageServiceTests : TestBaseClass
298264 static readonly Guid UserGuid = Guid . NewGuid ( ) ;
299265 static readonly string DefaultUserStoreContent = @"{""UserGuid"":""" + UserGuid + @"""}" ;
300266
301- static readonly string DefaultUsageContent =
302- @"{
303- ""LastUpdated"": ""2017-02-24T18:18:52.4298622Z"",
304- ""Model"": {
305- ""Guid"": """ + UserGuid + @""",
306- ""IsGitHubUser"": false,
307- ""IsEnterpriseUser"": false,
308- ""AppVersion"": ""2.4.3.0"",
309- ""VSVersion"": ""14.0.25431.01 Update 3"",
310- ""Lang"": ""en-US"",
311- ""NumberOfStartups"": 0,
312- ""NumberOfStartupsWeek"": 0,
313- ""NumberOfStartupsMonth"": 0,
314- ""NumberOfUpstreamPullRequests"": 0,
315- ""NumberOfClones"": 0,
316- ""NumberOfReposCreated"": 0,
317- ""NumberOfReposPublished"": 0,
318- ""NumberOfGists"": 0,
319- ""NumberOfOpenInGitHub"": 0,
320- ""NumberOfLinkToGitHub"": 0,
321- ""NumberOfLogins"": 1,
322- ""NumberOfOAuthLogins"": 0,
323- ""NumberOfTokenLogins"": 0,
324- ""NumberOfPullRequestsOpened"": 1,
325- ""NumberOfLocalPullRequestsCheckedOut"": 0,
326- ""NumberOfLocalPullRequestPulls"": 0,
327- ""NumberOfLocalPullRequestPushes"": 0,
328- ""NumberOfForkPullRequestsCheckedOut"": 0,
329- ""NumberOfForkPullRequestPulls"": 0,
330- ""NumberOfForkPullRequestPushes"": 0,
331- ""NumberOfSyncSubmodules"": 0,
332- ""NumberOfWelcomeDocsClicks"": 0,
333- ""NumberOfWelcomeTrainingClicks"": 0,
334- ""NumberOfGitHubPaneHelpClicks"": 0,
335- ""NumberOfPRDetailsViewChanges"": 0,
336- ""NumberOfPRDetailsViewFile"": 0,
337- ""NumberOfPRDetailsCompareWithSolution"": 0,
338- ""NumberOfPRDetailsOpenFileInSolution"": 0,
339- ""NumberOfPRDetailsNavigateToEditor"": 0,
340- ""NumberOfPRReviewDiffViewInlineCommentOpen"": 0,
341- ""NumberOfPRReviewDiffViewInlineCommentPost"": 0
342- }
343- }
344- " ;
345-
346- static readonly string LegacyUsageContent =
347- @"{
348- ""LastUpdated"": ""2017-02-24T12:37:09.4771538Z"",
349- ""Model"": {
350- ""IsGitHubUser"": true,
351- ""IsEnterpriseUser"": false,
352- ""AppVersion"": ""2.4.3.0"",
353- ""VSVersion"": ""14.0.25431.01 Update 3"",
354- ""Lang"": ""en-US"",
355- ""NumberOfStartups"": 0,
356- ""NumberOfStartupsWeek"": 3,
357- ""NumberOfStartupsMonth"": 23,
358- ""NumberOfUpstreamPullRequests"": 0,
359- ""NumberOfClones"": 0,
360- ""NumberOfReposCreated"": 0,
361- ""NumberOfReposPublished"": 0,
362- ""NumberOfGists"": 0,
363- ""NumberOfOpenInGitHub"": 0,
364- ""NumberOfLinkToGitHub"": 2,
365- ""NumberOfLogins"": 1,
366- ""NumberOfOAuthLogins"": 0,
367- ""NumberOfTokenLogins"": 0,
368- ""NumberOfPullRequestsOpened"": 1,
369- ""NumberOfLocalPullRequestsCheckedOut"": 0,
370- ""NumberOfLocalPullRequestPulls"": 0,
371- ""NumberOfLocalPullRequestPushes"": 0,
372- ""NumberOfForkPullRequestsCheckedOut"": 0,
373- ""NumberOfForkPullRequestPulls"": 0,
374- ""NumberOfForkPullRequestPushes"": 0,
375- ""NumberOfSyncSubmodules"": 0,
376- ""NumberOfWelcomeDocsClicks"": 0,
377- ""NumberOfWelcomeTrainingClicks"": 0,
378- ""NumberOfGitHubPaneHelpClicks"": 0,
379- ""NumberOfPRDetailsViewChanges"": 1,
380- ""NumberOfPRDetailsViewFile"": 0,
381- ""NumberOfPRDetailsCompareWithSolution"": 0,
382- ""NumberOfPRDetailsOpenFileInSolution"": 0,
383- ""NumberOfPRDetailsNavigateToEditor"": 0,
384- ""NumberOfPRReviewDiffViewInlineCommentOpen"": 1,
385- ""NumberOfPRReviewDiffViewInlineCommentPost"": 0,
386- ""NumberOfShowCurrentPullRequest"": 2
387- }
388- }
389- " ;
267+ static readonly string DefaultUsageContent = @"{""Reports"":[{""Dimensions"":{""Guid"":""26fa0c25-653f-4fa5-ad83-7438ad526b0a"",""Date"":""2018-03-13T18:45:19.0453424Z"",""IsGitHubUser"":false,""IsEnterpriseUser"":false,""AppVersion"":null,""VSVersion"":null,""Lang"":null,""CurrentLang"":null},""Measures"":{""NumberOfStartups"":0,""NumberOfUpstreamPullRequests"":0,""NumberOfClones"":1,""NumberOfReposCreated"":0,""NumberOfReposPublished"":2,""NumberOfGists"":0,""NumberOfOpenInGitHub"":0,""NumberOfLinkToGitHub"":0,""NumberOfLogins"":0,""NumberOfOAuthLogins"":0,""NumberOfTokenLogins"":0,""NumberOfPullRequestsOpened"":3,""NumberOfLocalPullRequestsCheckedOut"":0,""NumberOfLocalPullRequestPulls"":0,""NumberOfLocalPullRequestPushes"":0,""NumberOfForkPullRequestsCheckedOut"":0,""NumberOfForkPullRequestPulls"":0,""NumberOfForkPullRequestPushes"":0,""NumberOfSyncSubmodules"":0,""NumberOfWelcomeDocsClicks"":0,""NumberOfWelcomeTrainingClicks"":0,""NumberOfGitHubPaneHelpClicks"":0,""NumberOfPRDetailsViewChanges"":0,""NumberOfPRDetailsViewFile"":0,""NumberOfPRDetailsCompareWithSolution"":0,""NumberOfPRDetailsOpenFileInSolution"":0,""NumberOfPRDetailsNavigateToEditor"":0,""NumberOfPRReviewDiffViewInlineCommentOpen"":0,""NumberOfPRReviewDiffViewInlineCommentPost"":0,""NumberOfShowCurrentPullRequest"":0}}]}" ;
390268
391269 string usageFileName ;
392270 string userFileName ;
@@ -410,7 +288,7 @@ public void SetUp()
410288
411289 Directory . CreateDirectory ( localApplicationDataPath ) ;
412290
413- usageFileName = Path . Combine ( localApplicationDataPath , "ghfvs.usage " ) ;
291+ usageFileName = Path . Combine ( localApplicationDataPath , "metrics.json " ) ;
414292 userFileName = Path . Combine ( localApplicationDataPath , "user.json" ) ;
415293
416294 environment = Substitute . For < IEnvironment > ( ) ;
@@ -454,17 +332,26 @@ public async Task ReadUsageDataWorks()
454332 {
455333 var usageService = new UsageService ( Substitute . For < IGitHubServiceProvider > ( ) , environment ) ;
456334 var usageData = await usageService . ReadLocalData ( ) ;
457- //Assert.AreEqual(usageData.LastUpdated.Date, DateTime.Parse("2017-02-24"));
335+
336+ Assert . IsNotNull ( usageData ) ;
337+ Assert . IsNotNull ( usageData . Reports ) ;
338+ Assert . AreEqual ( 1 , usageData . Reports . Count ) ;
339+ Assert . AreEqual ( 1 , usageData . Reports [ 0 ] . Measures . NumberOfClones ) ;
340+ Assert . AreEqual ( 2 , usageData . Reports [ 0 ] . Measures . NumberOfReposPublished ) ;
341+ Assert . AreEqual ( 3 , usageData . Reports [ 0 ] . Measures . NumberOfPullRequestsOpened ) ;
458342 }
459343
460344 [ Test ]
461- public async Task ReadUsageDataWorksWhenLegacyContent ( )
345+ public async Task ReadUsageDataWorksWhenFileMissing ( )
462346 {
463- WriteUsageFileContent ( LegacyUsageContent ) ;
347+ File . Delete ( usageFileName ) ;
464348
465349 var usageService = new UsageService ( Substitute . For < IGitHubServiceProvider > ( ) , environment ) ;
466350 var usageData = await usageService . ReadLocalData ( ) ;
467- //Assert.AreEqual(usageData.LastUpdated.Date, DateTime.Parse("2017-02-24"));
351+
352+ Assert . IsNotNull ( usageData ) ;
353+ Assert . IsNotNull ( usageData . Reports ) ;
354+ Assert . AreEqual ( 0 , usageData . Reports . Count ) ;
468355 }
469356
470357 [ Test ]
0 commit comments