Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2sharp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Dahlby <dahlbyk@gmail.com>2013-11-21 01:52:21 +0400
committerKeith Dahlby <dahlbyk@gmail.com>2013-11-25 02:32:46 +0400
commitb8dc66023e3b735d409bef04eee531342161dad2 (patch)
tree6f369d9389317f873436621e82ea757ca2d1dc25 /LibGit2Sharp.Tests/MockedRepositoryFixture.cs
parente3108d4153590dcbe384bf88d1e357cace2648c7 (diff)
Configuration.Testability++
Diffstat (limited to 'LibGit2Sharp.Tests/MockedRepositoryFixture.cs')
-rw-r--r--LibGit2Sharp.Tests/MockedRepositoryFixture.cs71
1 files changed, 0 insertions, 71 deletions
diff --git a/LibGit2Sharp.Tests/MockedRepositoryFixture.cs b/LibGit2Sharp.Tests/MockedRepositoryFixture.cs
deleted file mode 100644
index 5161ff9b..00000000
--- a/LibGit2Sharp.Tests/MockedRepositoryFixture.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using LibGit2Sharp.Tests.TestHelpers;
-using Moq;
-using Xunit;
-
-namespace LibGit2Sharp.Tests
-{
- // This fixture shows how one can mock the IRepository when writing an application against LibGit2Sharp.
- // The application we want to test is simulated by the CommitCounter class (see below), which takes an IRepository,
- // and whose role is to compute and return the number of commits in the given repository.
- public class MockedRepositoryFixture : BaseFixture
- {
- // In this test, we pass to CommitCounter a concrete instance of the Repository. It means we will end up calling the concrete Repository
- // during the test run.
- [Fact]
- public void CanCountCommitsWithConcreteRepository()
- {
- using (var repo = new Repository(BareTestRepoPath))
- {
- var commitCounter = new CommitCounter(repo);
- Assert.Equal(7, commitCounter.NumberOfCommits);
- }
- }
-
- // This test shows that CommitCounter can take a mocked instance of IRepository. It means we can test CommitCounter without
- // relying on the concrete repository. We are testing CommitCounter in isolation.
- [Fact]
- public void CanCountCommitsWithMockedRepository()
- {
- var commitLog = Mock.Of<IQueryableCommitLog>(cl => cl.GetEnumerator() == FakeCommitLog(17));
- var repo = Mock.Of<IRepository>(r => r.Commits == commitLog);
-
- var commitCounter = new CommitCounter(repo);
- Assert.Equal(17, commitCounter.NumberOfCommits);
- }
-
- private static IEnumerator<Commit> FakeCommitLog(int size)
- {
- for (int i = 0; i < size; i++)
- {
- yield return FakeCommit(Guid.NewGuid().ToString());
- }
- }
-
- private static Commit FakeCommit(string sha)
- {
- var commitMock = new Mock<Commit>();
- commitMock.SetupGet(x => x.Sha).Returns(sha);
-
- return commitMock.Object;
- }
-
- // Simulated external application ;)
- private class CommitCounter
- {
- private readonly IRepository repo;
-
- public CommitCounter(IRepository repo)
- {
- this.repo = repo;
- }
-
- public int NumberOfCommits
- {
- get { return repo.Commits.Count(); }
- }
- }
- }
-}