public void Dispose_Positive_WithProgressBar() { const int index = 1; const int expectedTotalTicks = 5; var gitHubServiceMock = Mock.Create <IGitHubService>(); var progressBarMock = Mock.Create <IProgressBar>(); Mock.Arrange(() => progressBarMock.Report((double)index / expectedTotalTicks)).DoNothing().OccursOnce(); Mock.Arrange(() => progressBarMock.Dispose()).DoNothing().Occurs(2); var createProgressBarTotalCalls = 0; IProgressBar CreateProgressBar(int actualTotalTicks) { createProgressBarTotalCalls++; Assert.Equal(expectedTotalTicks, actualTotalTicks); return(progressBarMock); } var service = new CliService( null, gitHubServiceMock, null, CreateProgressBar, null); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted += null, expectedTotalTicks); Mock.Raise(() => gitHubServiceMock.RepositoryChecked += null, new RepositoryCheckedArgs(index, expectedTotalTicks)); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null); service.Dispose(); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted += null, expectedTotalTicks); Mock.Raise(() => gitHubServiceMock.RepositoryChecked += null, new RepositoryCheckedArgs(index, expectedTotalTicks)); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null); Assert.Equal(1, createProgressBarTotalCalls); Mock.Assert(progressBarMock); }
public void Dispose_Positive_WithoutProgressBar( Func <int, int[], Func <int, IProgressBar> > factoryOfProgressBarFactory, int expectedNumCalls) { const int index = 1; const int expectedTotalTicks = 5; var gitHubServiceMock = Mock.Create <IGitHubService>(); var actualNumCalls = new[] { 0 }; var service = new CliService( null, gitHubServiceMock, null, factoryOfProgressBarFactory(expectedTotalTicks, actualNumCalls), null); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted += null, expectedTotalTicks); Mock.Raise(() => gitHubServiceMock.RepositoryChecked += null, new RepositoryCheckedArgs(index, expectedTotalTicks)); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null); service.Dispose(); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted += null, expectedTotalTicks); Mock.Raise(() => gitHubServiceMock.RepositoryChecked += null, new RepositoryCheckedArgs(index, expectedTotalTicks)); Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null); Assert.Equal(expectedNumCalls, actualNumCalls[0]); }