@@ -20,6 +20,26 @@ public void RetrievingSubmoduleForNormalDirectoryReturnsNull()
20
20
}
21
21
}
22
22
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
+
23
43
[ Theory ]
24
44
[ InlineData ( "sm_added_and_uncommited" , SubmoduleStatus . InConfig | SubmoduleStatus . InIndex | SubmoduleStatus . InWorkDir | SubmoduleStatus . IndexAdded ) ]
25
45
[ InlineData ( "sm_changed_file" , SubmoduleStatus . InConfig | SubmoduleStatus . InHead | SubmoduleStatus . InIndex | SubmoduleStatus . InWorkDir | SubmoduleStatus . WorkDirFilesModified ) ]
@@ -29,12 +49,20 @@ public void RetrievingSubmoduleForNormalDirectoryReturnsNull()
29
49
[ InlineData ( "sm_gitmodules_only" , SubmoduleStatus . InConfig ) ]
30
50
[ InlineData ( "sm_missing_commits" , SubmoduleStatus . InConfig | SubmoduleStatus . InHead | SubmoduleStatus . InIndex | SubmoduleStatus . InWorkDir | SubmoduleStatus . WorkDirModified ) ]
31
51
[ 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 )
33
54
{
34
55
var path = SandboxSubmoduleTestRepo ( ) ;
35
56
using ( var repo = new Repository ( path ) )
36
57
{
37
58
var submodule = repo . Submodules [ name ] ;
59
+
60
+ if ( expectedStatus == null )
61
+ {
62
+ Assert . Null ( submodule ) ;
63
+ return ;
64
+ }
65
+
38
66
Assert . NotNull ( submodule ) ;
39
67
Assert . Equal ( name , submodule . Name ) ;
40
68
Assert . Equal ( name , submodule . Path ) ;
0 commit comments