@@ -52,7 +52,7 @@ public void CanAddADirectReferenceFromRevParseSpec()
52
52
}
53
53
54
54
[ Fact ]
55
- public void CanAddASymbolicReference ( )
55
+ public void CanAddASymbolicReferenceFromTheTargetName ( )
56
56
{
57
57
const string name = "refs/heads/unit_test" ;
58
58
const string target = "refs/heads/master" ;
@@ -61,15 +61,38 @@ public void CanAddASymbolicReference()
61
61
using ( var repo = new Repository ( path . RepositoryPath ) )
62
62
{
63
63
var newRef = ( SymbolicReference ) repo . Refs . Add ( name , target ) ;
64
- Assert . NotNull ( newRef ) ;
65
- Assert . Equal ( name , newRef . CanonicalName ) ;
66
- Assert . Equal ( target , newRef . Target . CanonicalName ) ;
67
- Assert . Equal ( newRef . Target . CanonicalName , newRef . TargetIdentifier ) ;
68
- Assert . Equal ( "4c062a6361ae6959e06292c1fa5e2822d9c96345" , newRef . ResolveToDirectReference ( ) . Target . Sha ) ;
69
- Assert . NotNull ( repo . Refs [ name ] ) ;
64
+
65
+ AssertSymbolicRef ( newRef , repo , target , name ) ;
66
+ }
67
+ }
68
+
69
+ [ Fact ]
70
+ public void CanAddASymbolicReferenceFromTheTargetReference ( )
71
+ {
72
+ const string name = "refs/heads/unit_test" ;
73
+ const string target = "refs/heads/master" ;
74
+
75
+ TemporaryCloneOfTestRepo path = BuildTemporaryCloneOfTestRepo ( ) ;
76
+ using ( var repo = new Repository ( path . RepositoryPath ) )
77
+ {
78
+ var targetRef = repo . Refs [ target ] ;
79
+
80
+ var newRef = repo . Refs . Add ( name , targetRef ) ;
81
+
82
+ AssertSymbolicRef ( newRef , repo , target , name ) ;
70
83
}
71
84
}
72
85
86
+ private static void AssertSymbolicRef ( SymbolicReference newRef , Repository repo , string expectedTargetName , string expectedName )
87
+ {
88
+ Assert . NotNull ( newRef ) ;
89
+ Assert . Equal ( expectedName , newRef . CanonicalName ) ;
90
+ Assert . Equal ( expectedTargetName , newRef . Target . CanonicalName ) ;
91
+ Assert . Equal ( newRef . Target . CanonicalName , newRef . TargetIdentifier ) ;
92
+ Assert . Equal ( "4c062a6361ae6959e06292c1fa5e2822d9c96345" , newRef . ResolveToDirectReference ( ) . Target . Sha ) ;
93
+ Assert . NotNull ( repo . Refs [ expectedName ] ) ;
94
+ }
95
+
73
96
[ Fact ]
74
97
public void BlindlyCreatingADirectReferenceOverAnExistingOneThrows ( )
75
98
{
0 commit comments