Skip to content

Commit 422d0bf

Browse files
committed
replace IRepository with IGitRepository
1 parent c23179e commit 422d0bf

File tree

10 files changed

+59
-95
lines changed

10 files changed

+59
-95
lines changed

src/GitVersionCore.Tests/Core/RepositoryExtensionsTests.cs

Lines changed: 13 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ private IGitRepository MockRepository()
8383
return repository;
8484
}
8585

86-
private Remote MockRemote(IGitRepository repository)
86+
private static Remote MockRemote(IGitRepository repository)
8787
{
8888
var branches = new TestableBranchCollection();
8989
var tipId = new ObjectId("c6d8764d20ff16c0df14c73680e52b255b608926");
@@ -104,57 +104,20 @@ private class TestableBranchCollection : BranchCollection
104104
IDictionary<string, Branch> branches = new Dictionary<string, Branch>();
105105

106106
public override Branch this[string name] =>
107-
this.branches.ContainsKey(name)
108-
? this.branches[name]
107+
branches.ContainsKey(name)
108+
? branches[name]
109109
: null;
110110

111111
public override Branch Add(string name, Commit commit)
112112
{
113113
var branch = new TestableBranch(name, commit);
114-
this.branches.Add(name, branch);
114+
branches.Add(name, branch);
115115
return branch;
116116
}
117117

118-
public override Branch Add(string name, string committish)
119-
{
120-
var id = new ObjectId(committish);
121-
var commit = new TestableCommit(id);
122-
return Add(name, commit);
123-
}
124-
125-
public override Branch Add(string name, Commit commit, bool allowOverwrite)
126-
{
127-
return Add(name, commit);
128-
}
129-
130-
public override Branch Add(string name, string committish, bool allowOverwrite)
131-
{
132-
return Add(name, committish);
133-
}
134-
135118
public override IEnumerator<Branch> GetEnumerator()
136119
{
137-
return this.branches.Values.GetEnumerator();
138-
}
139-
140-
public override void Remove(string name)
141-
{
142-
this.branches.Remove(name);
143-
}
144-
145-
public override void Remove(string name, bool isRemote)
146-
{
147-
this.branches.Remove(name);
148-
}
149-
150-
public override void Remove(Branch branch)
151-
{
152-
this.branches.Remove(branch.CanonicalName);
153-
}
154-
155-
public override Branch Update(Branch branch, params Action<BranchUpdater>[] actions)
156-
{
157-
return base.Update(branch, actions);
120+
return branches.Values.GetEnumerator();
158121
}
159122
}
160123

@@ -169,8 +132,8 @@ public TestableBranch(string canonicalName, Commit tip)
169132
this.canonicalName = canonicalName;
170133
}
171134

172-
public override string CanonicalName => this.canonicalName;
173-
public override Commit Tip => this.tip;
135+
public override string CanonicalName => canonicalName;
136+
public override Commit Tip => tip;
174137
}
175138

176139
private class TestableCommit : Commit
@@ -182,7 +145,7 @@ public TestableCommit(ObjectId id)
182145
this.id = id;
183146
}
184147

185-
public override ObjectId Id => this.id;
148+
public override ObjectId Id => id;
186149
}
187150

188151
private class TesatbleRemote : Remote
@@ -194,7 +157,7 @@ public TesatbleRemote(string name)
194157
this.name = name;
195158
}
196159

197-
public override string Name => this.name;
160+
public override string Name => name;
198161
}
199162

200163
private class TestableReferenceCollection : ReferenceCollection
@@ -208,15 +171,15 @@ public override DirectReference Add(string name, ObjectId targetId)
208171

209172
public override Reference Add(string name, string canonicalRefNameOrObjectish)
210173
{
211-
return this.reference = new TestableReference(canonicalRefNameOrObjectish);
174+
return reference = new TestableReference(canonicalRefNameOrObjectish);
212175
}
213176

214177
public override Reference UpdateTarget(Reference directRef, ObjectId targetId)
215178
{
216-
return this.reference;
179+
return reference;
217180
}
218181

219-
public override Reference this[string name] => this.reference;
182+
public override Reference this[string name] => reference;
220183
}
221184

222185
private class TestableReference : Reference
@@ -228,7 +191,7 @@ public TestableReference(string canonicalName)
228191
this.canonicalName = canonicalName;
229192
}
230193

231-
public override string CanonicalName => this.canonicalName;
194+
public override string CanonicalName => canonicalName;
232195

233196
public override DirectReference ResolveToDirectReference()
234197
{

src/GitVersionCore.Tests/Core/RepositoryMetadataProviderTests.cs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,16 @@ public void FindsCorrectMergeBaseForForwardMerge()
3636
using var fixture = new EmptyRepositoryFixture();
3737
fixture.MakeACommit("initial");
3838
fixture.BranchTo("develop");
39-
var expectedReleaseMergeBase = fixture.Repository.Head.Tip;
39+
var fixtureRepository = new GitRepository(fixture.Repository);
40+
var expectedReleaseMergeBase = fixtureRepository.Head.Tip;
4041

4142
// Create release from develop
4243
fixture.BranchTo("release-2.0.0");
4344

4445
// Make some commits on release
4546
fixture.MakeACommit("release 1");
4647
fixture.MakeACommit("release 2");
47-
var expectedDevelopMergeBase = fixture.Repository.Head.Tip;
48+
var expectedDevelopMergeBase = fixtureRepository.Head.Tip;
4849

4950
// First forward merge release to develop
5051
fixture.Checkout("develop");
@@ -60,16 +61,15 @@ public void FindsCorrectMergeBaseForForwardMerge()
6061
// Checkout to release (no new commits)
6162
fixture.Checkout("release-2.0.0");
6263

63-
var develop = fixture.Repository.FindBranch("develop");
64-
var release = fixture.Repository.FindBranch("release-2.0.0");
65-
var repository = new GitRepository(() => fixture.RepositoryPath);
66-
var gitRepoMetadataProvider = new RepositoryMetadataProvider(log, repository);
64+
var develop = fixtureRepository.FindBranch("develop");
65+
var release = fixtureRepository.FindBranch("release-2.0.0");
66+
var gitRepoMetadataProvider = new RepositoryMetadataProvider(log, fixtureRepository);
6767

6868
var releaseBranchMergeBase = gitRepoMetadataProvider.FindMergeBase(release, develop);
6969

7070
var developMergeBase = gitRepoMetadataProvider.FindMergeBase(develop, release);
7171

72-
fixture.Repository.DumpGraph(Console.WriteLine);
72+
fixtureRepository.DumpGraph(Console.WriteLine);
7373

7474
releaseBranchMergeBase.ShouldBe(expectedReleaseMergeBase);
7575
developMergeBase.ShouldBe(expectedDevelopMergeBase);
@@ -90,15 +90,16 @@ public void FindsCorrectMergeBaseForForwardMergeMovesOn()
9090
using var fixture = new EmptyRepositoryFixture();
9191
fixture.MakeACommit("initial");
9292
fixture.BranchTo("develop");
93-
var expectedReleaseMergeBase = fixture.Repository.Head.Tip;
93+
var fixtureRepository = new GitRepository(fixture.Repository);
94+
var expectedReleaseMergeBase = fixtureRepository.Head.Tip;
9495

9596
// Create release from develop
9697
fixture.BranchTo("release-2.0.0");
9798

9899
// Make some commits on release
99100
fixture.MakeACommit("release 1");
100101
fixture.MakeACommit("release 2");
101-
var expectedDevelopMergeBase = fixture.Repository.Head.Tip;
102+
var expectedDevelopMergeBase = fixtureRepository.Head.Tip;
102103

103104
// First forward merge release to develop
104105
fixture.Checkout("develop");
@@ -116,16 +117,15 @@ public void FindsCorrectMergeBaseForForwardMergeMovesOn()
116117
// Checkout to release (no new commits)
117118
fixture.Checkout("release-2.0.0");
118119

119-
var develop = fixture.Repository.FindBranch("develop");
120-
var release = fixture.Repository.FindBranch("release-2.0.0");
121-
var repository = new GitRepository(() => fixture.RepositoryPath);
122-
var gitRepoMetadataProvider = new RepositoryMetadataProvider(log, repository);
120+
var develop = fixtureRepository.FindBranch("develop");
121+
var release = fixtureRepository.FindBranch("release-2.0.0");
122+
var gitRepoMetadataProvider = new RepositoryMetadataProvider(log, fixtureRepository);
123123

124124
var releaseBranchMergeBase = gitRepoMetadataProvider.FindMergeBase(release, develop);
125125

126126
var developMergeBase = gitRepoMetadataProvider.FindMergeBase(develop, release);
127127

128-
fixture.Repository.DumpGraph(Console.WriteLine);
128+
fixtureRepository.DumpGraph(Console.WriteLine);
129129

130130
releaseBranchMergeBase.ShouldBe(expectedReleaseMergeBase);
131131
developMergeBase.ShouldBe(expectedDevelopMergeBase);
@@ -151,7 +151,8 @@ public void FindsCorrectMergeBaseForMultipleForwardMerges()
151151
using var fixture = new EmptyRepositoryFixture();
152152
fixture.MakeACommit("initial");
153153
fixture.BranchTo("develop");
154-
var expectedReleaseMergeBase = fixture.Repository.Head.Tip;
154+
var fixtureRepository = new GitRepository(fixture.Repository);
155+
var expectedReleaseMergeBase = fixtureRepository.Head.Tip;
155156

156157
// Create release from develop
157158
fixture.BranchTo("release-2.0.0");
@@ -166,22 +167,22 @@ public void FindsCorrectMergeBaseForMultipleForwardMerges()
166167

167168
// Make some new commit on release
168169
fixture.Checkout("release-2.0.0");
169-
fixture.Repository.MakeACommit("release 3 - after first merge");
170+
fixture.MakeACommit("release 3 - after first merge");
170171

171172
// Make new commit on develop
172173
fixture.Checkout("develop");
173174
// Checkout to release (no new commits)
174175
fixture.Checkout("release-2.0.0");
175176
fixture.Checkout("develop");
176-
fixture.Repository.MakeACommit("develop after merge");
177+
fixture.MakeACommit("develop after merge");
177178

178179
// Checkout to release (no new commits)
179180
fixture.Checkout("release-2.0.0");
180181

181182
// Make some new commit on release
182-
fixture.Repository.MakeACommit("release 4");
183-
fixture.Repository.MakeACommit("release 5");
184-
var expectedDevelopMergeBase = fixture.Repository.Head.Tip;
183+
fixture.MakeACommit("release 4");
184+
fixture.MakeACommit("release 5");
185+
var expectedDevelopMergeBase = fixtureRepository.Head.Tip;
185186

186187
// Second merge release to develop
187188
fixture.Checkout("develop");
@@ -190,17 +191,16 @@ public void FindsCorrectMergeBaseForMultipleForwardMerges()
190191
// Checkout to release (no new commits)
191192
fixture.Checkout("release-2.0.0");
192193

193-
var develop = fixture.Repository.FindBranch("develop");
194-
var release = fixture.Repository.FindBranch("release-2.0.0");
194+
var develop = fixtureRepository.FindBranch("develop");
195+
var release = fixtureRepository.FindBranch("release-2.0.0");
195196

196-
var repository = new GitRepository(() => fixture.RepositoryPath);
197-
var gitRepoMetadataProvider = new RepositoryMetadataProvider(log, repository);
197+
var gitRepoMetadataProvider = new RepositoryMetadataProvider(log, fixtureRepository);
198198

199199
var releaseBranchMergeBase = gitRepoMetadataProvider.FindMergeBase(release, develop);
200200

201201
var developMergeBase = gitRepoMetadataProvider.FindMergeBase(develop, release);
202202

203-
fixture.Repository.DumpGraph(Console.WriteLine);
203+
fixtureRepository.DumpGraph(Console.WriteLine);
204204

205205
releaseBranchMergeBase.ShouldBe(expectedReleaseMergeBase);
206206
developMergeBase.ShouldBe(expectedDevelopMergeBase);

src/GitVersionCore.Tests/Extensions/GitToolsTestingExtensions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ namespace GitVersionCore.Tests
1919
{
2020
public static class GitToolsTestingExtensions
2121
{
22-
public static Branch FindBranch(this IRepository repository, string branchName)
22+
public static Branch FindBranch(this IGitRepository repository, string branchName)
2323
{
2424
return repository.Branches.FirstOrDefault(x => x.NameWithoutRemote() == branchName);
2525
}
2626

27-
public static void DumpGraph(this IRepository repository, Action<string> writer = null, int? maxCommits = null)
27+
public static void DumpGraph(this IGitRepository repository, Action<string> writer = null, int? maxCommits = null)
2828
{
2929
LibGitExtensions.DumpGraph(repository.Info.Path, writer, maxCommits);
3030
}
@@ -68,7 +68,7 @@ public static VersionVariables GetVersion(this RepositoryFixtureBase fixture, Co
6868
catch (Exception)
6969
{
7070
Console.WriteLine("Test failing, dumping repository graph");
71-
repository.DumpGraph();
71+
new GitRepository(repository).DumpGraph();
7272
throw;
7373
}
7474
}
@@ -95,7 +95,7 @@ public static void AssertFullSemver(this RepositoryFixtureBase fixture, string f
9595
}
9696
catch (Exception)
9797
{
98-
(repository ?? fixture.Repository).DumpGraph();
98+
new GitRepository(repository ?? fixture.Repository).DumpGraph();
9999
throw;
100100
}
101101
if (commitId == null)

src/GitVersionCore.Tests/IntegrationTests/DocumentationSamples.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using GitTools.Testing;
3+
using GitVersion;
34
using GitVersionCore.Tests.Helpers;
45
using NUnit.Framework;
56
using Shouldly;
@@ -401,7 +402,8 @@ public void GitHubFlowMajorRelease()
401402
fixture.ApplyTag("2.0.0");
402403
fixture.AssertFullSemver("2.0.0");
403404
fixture.MakeACommit();
404-
fixture.Repository.DumpGraph();
405+
var fixtureRepository = new GitRepository(fixture.Repository);
406+
fixtureRepository.DumpGraph();
405407
fixture.AssertFullSemver("2.0.1+1");
406408
}
407409
}

src/GitVersionCore.Tests/IntegrationTests/PullRequestScenarios.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GitTools.Testing;
2+
using GitVersion;
23
using GitVersionCore.Tests.Helpers;
34
using LibGit2Sharp;
45
using NUnit.Framework;
@@ -18,7 +19,7 @@ public void CanCalculatePullRequestChanges()
1819

1920
fixture.Repository.CreatePullRequestRef("feature/Foo", "master", normalise: true);
2021

21-
fixture.Repository.DumpGraph();
22+
new GitRepository(fixture.Repository).DumpGraph();
2223
fixture.AssertFullSemver("0.1.1-PullRequest0002.2");
2324
}
2425

@@ -34,7 +35,7 @@ public void CanCalculatePullRequestChangesInheritingConfig()
3435

3536
fixture.Repository.CreatePullRequestRef("feature/Foo", "develop", 44, normalise: true);
3637

37-
fixture.Repository.DumpGraph();
38+
new GitRepository(fixture.Repository).DumpGraph();
3839
fixture.AssertFullSemver("0.2.0-PullRequest0044.3");
3940
}
4041

@@ -49,7 +50,7 @@ public void CanCalculatePullRequestChangesFromRemoteRepo()
4950

5051
fixture.Repository.CreatePullRequestRef("feature/Foo", "master", normalise: true);
5152

52-
fixture.Repository.DumpGraph();
53+
new GitRepository(fixture.Repository).DumpGraph();
5354
fixture.AssertFullSemver("0.1.1-PullRequest0002.2");
5455
}
5556

src/GitVersionCore.Tests/Mocks/MockBranchCollection.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace GitVersionCore.Tests.Mocks
66
{
7-
public class MockBranchCollection : BranchCollection, ICollection<Branch>
7+
public class MockBranchCollection : BranchCollection
88
{
99
public List<Branch> Branches = new List<Branch>();
1010

@@ -42,10 +42,6 @@ public override void Remove(Branch item)
4242
{
4343
Branches.Remove(item);
4444
}
45-
bool ICollection<Branch>.Remove(Branch item)
46-
{
47-
return Branches.Remove(item);
48-
}
4945

5046
public int Count => Branches.Count;
5147
public bool IsReadOnly => false;

src/GitVersionCore.Tests/Mocks/MockRepository.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public void Dispose()
1818
{
1919
throw new NotImplementedException();
2020
}
21+
2122
public Branch Head { get; set; }
2223
public ReferenceCollection Refs { get; set; }
2324

@@ -32,6 +33,7 @@ public IQueryableCommitLog Commits
3233
public RepositoryInformation Info { get; set; }
3334
public Diff Diff { get; set; }
3435
public ObjectDatabase ObjectDatabase { get; set; }
36+
3537
public Network Network { get; set; }
3638
public RepositoryStatus RetrieveStatus()
3739
{

src/GitVersionCore.Tests/VersionCalculation/NextVersionCalculatorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ public void PreReleaseNumberShouldBeScopeToPreReleaseLabelInContinuousDelivery()
301301
fixture.AssertFullSemver("0.1.0-test.2+2", config);
302302

303303
Commands.Checkout(fixture.Repository, "master");
304-
fixture.Repository.Merge(fixture.Repository.FindBranch("feature/test"), Generate.SignatureNow());
304+
fixture.Repository.Merge(new GitRepository(fixture.Repository).FindBranch("feature/test"), Generate.SignatureNow());
305305

306306
fixture.AssertFullSemver("0.1.0-beta.1+2", config);
307307
}

0 commit comments

Comments
 (0)