Skip to content

Commit cbea359

Browse files
committed
Add test for sm_branch_only
1 parent 3feeb01 commit cbea359

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

LibGit2Sharp.Tests/SubmoduleFixture.cs

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,26 @@ public void RetrievingSubmoduleForNormalDirectoryReturnsNull()
2020
}
2121
}
2222

23+
[Fact]
24+
public void RetrievingSubmoduleInBranchShouldWork()
25+
{
26+
var path = SandboxSubmoduleTestRepo();
27+
using (var repo = new Repository(path))
28+
{
29+
var submodule = repo.Submodules["sm_branch_only"];
30+
Assert.Null(submodule);
31+
32+
repo.Checkout("dev", new CheckoutOptions { CheckoutModifiers = CheckoutModifiers.Force });
33+
submodule = repo.Submodules["sm_branch_only"];
34+
Assert.NotNull(submodule);
35+
Assert.NotEqual(SubmoduleStatus.Unmodified, submodule.RetrieveStatus());
36+
37+
repo.Checkout("master", new CheckoutOptions { CheckoutModifiers = CheckoutModifiers.Force });
38+
submodule = repo.Submodules["sm_branch_only"];
39+
Assert.Null(submodule);
40+
}
41+
}
42+
2343
[Theory]
2444
[InlineData("sm_added_and_uncommited", SubmoduleStatus.InConfig | SubmoduleStatus.InIndex | SubmoduleStatus.InWorkDir | SubmoduleStatus.IndexAdded)]
2545
[InlineData("sm_changed_file", SubmoduleStatus.InConfig | SubmoduleStatus.InHead | SubmoduleStatus.InIndex | SubmoduleStatus.InWorkDir | SubmoduleStatus.WorkDirFilesModified)]
@@ -29,12 +49,20 @@ public void RetrievingSubmoduleForNormalDirectoryReturnsNull()
2949
[InlineData("sm_gitmodules_only", SubmoduleStatus.InConfig)]
3050
[InlineData("sm_missing_commits", SubmoduleStatus.InConfig | SubmoduleStatus.InHead | SubmoduleStatus.InIndex | SubmoduleStatus.InWorkDir | SubmoduleStatus.WorkDirModified)]
3151
[InlineData("sm_unchanged", SubmoduleStatus.InConfig | SubmoduleStatus.InHead | SubmoduleStatus.InIndex | SubmoduleStatus.InWorkDir)]
32-
public void CanRetrieveTheStatusOfASubmodule(string name, SubmoduleStatus expectedStatus)
52+
[InlineData("sm_branch_only", null)]
53+
public void CanRetrieveTheStatusOfASubmodule(string name, SubmoduleStatus? expectedStatus)
3354
{
3455
var path = SandboxSubmoduleTestRepo();
3556
using (var repo = new Repository(path))
3657
{
3758
var submodule = repo.Submodules[name];
59+
60+
if (expectedStatus == null)
61+
{
62+
Assert.Null(submodule);
63+
return;
64+
}
65+
3866
Assert.NotNull(submodule);
3967
Assert.Equal(name, submodule.Name);
4068
Assert.Equal(name, submodule.Path);

0 commit comments

Comments
 (0)