Skip to content

Commit ad75171

Browse files
jamillnulltoken
authored andcommitted
Move Checkout tests into CheckoutFixture
1 parent a66d8ff commit ad75171

File tree

3 files changed

+116
-105
lines changed

3 files changed

+116
-105
lines changed

LibGit2Sharp.Tests/BranchFixture.cs

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -420,111 +420,6 @@ public void CanWalkCommitsFromBranch()
420420
}
421421
}
422422

423-
[Theory]
424-
[InlineData("i-do-numbers")]
425-
[InlineData("diff-test-cases")]
426-
public void CanCheckoutAnExistingBranch(string branchName)
427-
{
428-
TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoWorkingDirPath);
429-
using (var repo = new Repository(path.RepositoryPath))
430-
{
431-
Branch master = repo.Branches["master"];
432-
Assert.True(master.IsCurrentRepositoryHead);
433-
434-
Branch branch = repo.Branches[branchName];
435-
Assert.NotNull(branch);
436-
437-
Branch test = repo.Checkout(branch);
438-
Assert.False(repo.Info.IsHeadDetached);
439-
440-
Assert.False(test.IsRemote);
441-
Assert.True(test.IsCurrentRepositoryHead);
442-
Assert.Equal(repo.Head, test);
443-
444-
Assert.False(master.IsCurrentRepositoryHead);
445-
}
446-
}
447-
448-
[Theory]
449-
[InlineData("i-do-numbers")]
450-
[InlineData("diff-test-cases")]
451-
public void CanCheckoutAnExistingBranchByName(string branchName)
452-
{
453-
TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoWorkingDirPath);
454-
using (var repo = new Repository(path.RepositoryPath))
455-
{
456-
Branch master = repo.Branches["master"];
457-
Assert.True(master.IsCurrentRepositoryHead);
458-
459-
Branch test = repo.Checkout(branchName);
460-
Assert.False(repo.Info.IsHeadDetached);
461-
462-
Assert.False(test.IsRemote);
463-
Assert.True(test.IsCurrentRepositoryHead);
464-
Assert.Equal(repo.Head, test);
465-
466-
Assert.False(master.IsCurrentRepositoryHead);
467-
}
468-
}
469-
470-
[Theory]
471-
[InlineData("6dcf9bf")]
472-
[InlineData("refs/tags/lw")]
473-
public void CanCheckoutAnArbitraryCommit(string commitPointer)
474-
{
475-
TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoWorkingDirPath);
476-
using (var repo = new Repository(path.RepositoryPath))
477-
{
478-
Branch master = repo.Branches["master"];
479-
Assert.True(master.IsCurrentRepositoryHead);
480-
481-
Branch detachedHead = repo.Checkout(commitPointer);
482-
483-
Assert.Equal(repo.Head, detachedHead);
484-
Assert.Equal(repo.Lookup(commitPointer).Sha, detachedHead.Tip.Sha);
485-
Assert.True(repo.Head.IsCurrentRepositoryHead);
486-
Assert.True(repo.Info.IsHeadDetached);
487-
488-
Assert.True(detachedHead.IsCurrentRepositoryHead);
489-
Assert.False(detachedHead.IsRemote);
490-
Assert.Equal(detachedHead.Name, detachedHead.CanonicalName);
491-
492-
Assert.Equal("(no branch)", detachedHead.CanonicalName);
493-
494-
Assert.False(master.IsCurrentRepositoryHead);
495-
}
496-
}
497-
498-
[Fact]
499-
public void CheckingOutInABareRepoThrows()
500-
{
501-
using (var repo = new Repository(BareTestRepoPath))
502-
{
503-
Assert.Throws<InvalidOperationException>(() => repo.Checkout(repo.Branches["refs/heads/test"]));
504-
Assert.Throws<InvalidOperationException>(() => repo.Checkout("refs/heads/test"));
505-
}
506-
}
507-
508-
[Fact]
509-
public void CheckingOutANonExistingBranchThrows()
510-
{
511-
using (var repo = new Repository(StandardTestRepoWorkingDirPath))
512-
{
513-
Assert.Throws<LibGit2SharpException>(() => repo.Checkout("i-do-not-exist"));
514-
}
515-
}
516-
517-
[Fact]
518-
public void CheckingOutABranchWithBadParamsThrows()
519-
{
520-
using (var repo = new Repository(StandardTestRepoWorkingDirPath))
521-
{
522-
Assert.Throws<ArgumentException>(() => repo.Checkout(string.Empty));
523-
Assert.Throws<ArgumentNullException>(() => repo.Checkout(default(Branch)));
524-
Assert.Throws<ArgumentNullException>(() => repo.Checkout(default(string)));
525-
}
526-
}
527-
528423
private void AssertRemoval(string branchName, bool isRemote, bool shouldPreviouslyAssertExistence)
529424
{
530425
TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoPath);

LibGit2Sharp.Tests/CheckoutFixture.cs

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
using System;
2+
using LibGit2Sharp.Tests.TestHelpers;
3+
using Xunit;
4+
using Xunit.Extensions;
5+
6+
namespace LibGit2Sharp.Tests
7+
{
8+
public class CheckoutFixture : BaseFixture
9+
{
10+
[Theory]
11+
[InlineData("i-do-numbers")]
12+
[InlineData("diff-test-cases")]
13+
public void CanCheckoutAnExistingBranch(string branchName)
14+
{
15+
TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoWorkingDirPath);
16+
using (var repo = new Repository(path.RepositoryPath))
17+
{
18+
Branch master = repo.Branches["master"];
19+
Assert.True(master.IsCurrentRepositoryHead);
20+
21+
Branch branch = repo.Branches[branchName];
22+
Assert.NotNull(branch);
23+
24+
Branch test = repo.Checkout(branch);
25+
Assert.False(repo.Info.IsHeadDetached);
26+
27+
Assert.False(test.IsRemote);
28+
Assert.True(test.IsCurrentRepositoryHead);
29+
Assert.Equal(repo.Head, test);
30+
31+
Assert.False(master.IsCurrentRepositoryHead);
32+
}
33+
}
34+
35+
[Theory]
36+
[InlineData("i-do-numbers")]
37+
[InlineData("diff-test-cases")]
38+
public void CanCheckoutAnExistingBranchByName(string branchName)
39+
{
40+
TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoWorkingDirPath);
41+
using (var repo = new Repository(path.RepositoryPath))
42+
{
43+
Branch master = repo.Branches["master"];
44+
Assert.True(master.IsCurrentRepositoryHead);
45+
46+
Branch test = repo.Checkout(branchName);
47+
Assert.False(repo.Info.IsHeadDetached);
48+
49+
Assert.False(test.IsRemote);
50+
Assert.True(test.IsCurrentRepositoryHead);
51+
Assert.Equal(repo.Head, test);
52+
53+
Assert.False(master.IsCurrentRepositoryHead);
54+
}
55+
}
56+
57+
[Theory]
58+
[InlineData("6dcf9bf")]
59+
[InlineData("refs/tags/lw")]
60+
public void CanCheckoutAnArbitraryCommit(string commitPointer)
61+
{
62+
TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo(StandardTestRepoWorkingDirPath);
63+
using (var repo = new Repository(path.RepositoryPath))
64+
{
65+
Branch master = repo.Branches["master"];
66+
Assert.True(master.IsCurrentRepositoryHead);
67+
68+
Branch detachedHead = repo.Checkout(commitPointer);
69+
70+
Assert.Equal(repo.Head, detachedHead);
71+
Assert.Equal(repo.Lookup(commitPointer).Sha, detachedHead.Tip.Sha);
72+
Assert.True(repo.Head.IsCurrentRepositoryHead);
73+
Assert.True(repo.Info.IsHeadDetached);
74+
75+
Assert.True(detachedHead.IsCurrentRepositoryHead);
76+
Assert.False(detachedHead.IsRemote);
77+
Assert.Equal(detachedHead.Name, detachedHead.CanonicalName);
78+
79+
Assert.Equal("(no branch)", detachedHead.CanonicalName);
80+
81+
Assert.False(master.IsCurrentRepositoryHead);
82+
}
83+
}
84+
85+
[Fact]
86+
public void CheckingOutInABareRepoThrows()
87+
{
88+
using (var repo = new Repository(BareTestRepoPath))
89+
{
90+
Assert.Throws<InvalidOperationException>(() => repo.Checkout(repo.Branches["refs/heads/test"]));
91+
Assert.Throws<InvalidOperationException>(() => repo.Checkout("refs/heads/test"));
92+
}
93+
}
94+
95+
[Fact]
96+
public void CheckingOutANonExistingBranchThrows()
97+
{
98+
using (var repo = new Repository(StandardTestRepoWorkingDirPath))
99+
{
100+
Assert.Throws<LibGit2SharpException>(() => repo.Checkout("i-do-not-exist"));
101+
}
102+
}
103+
104+
[Fact]
105+
public void CheckingOutABranchWithBadParamsThrows()
106+
{
107+
using (var repo = new Repository(StandardTestRepoWorkingDirPath))
108+
{
109+
Assert.Throws<ArgumentException>(() => repo.Checkout(string.Empty));
110+
Assert.Throws<ArgumentNullException>(() => repo.Checkout(default(Branch)));
111+
Assert.Throws<ArgumentNullException>(() => repo.Checkout(default(string)));
112+
}
113+
}
114+
}
115+
}

LibGit2Sharp.Tests/LibGit2Sharp.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
</Reference>
5858
</ItemGroup>
5959
<ItemGroup>
60+
<Compile Include="CheckoutFixture.cs" />
6061
<Compile Include="MetaFixture.cs" />
6162
<Compile Include="MockedRepositoryFixture.cs" />
6263
<Compile Include="ConfigurationFixture.cs" />

0 commit comments

Comments
 (0)