@@ -7,11 +7,14 @@ namespace LibGit2Sharp.Tests
7
7
[ TestFixture ]
8
8
public class ObjectIdFixture
9
9
{
10
+ private const string validSha1 = "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ;
11
+ private const string validSha2 = "de08fe4884650f067bd5703b6a59a8b3b3c99a09" ;
12
+
10
13
[ TestCase ( "Dummy" , typeof ( ArgumentException ) ) ]
11
14
[ TestCase ( "" , typeof ( ArgumentException ) ) ]
12
15
[ TestCase ( "8e" , typeof ( ArgumentException ) ) ]
13
16
[ TestCase ( null , typeof ( ArgumentNullException ) ) ]
14
- [ TestCase ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09dd ", typeof ( ArgumentException ) ) ]
17
+ [ TestCase ( validSha1 + "dd ", typeof ( ArgumentException ) ) ]
15
18
public void PreventsFromBuildingWithAnInvalidSha ( string malformedSha , Type expectedExceptionType )
16
19
{
17
20
Assert . Throws ( expectedExceptionType , ( ) => new ObjectId ( malformedSha ) ) ;
@@ -24,14 +27,15 @@ public void CanConvertOidToSha()
24
27
25
28
var id = new ObjectId ( bytes ) ;
26
29
27
- id . Sha . ShouldEqual ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
28
- id . ToString ( ) . ShouldEqual ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
30
+ id . Sha . ShouldEqual ( validSha1 ) ;
31
+ id . ToString ( ) . ShouldEqual ( validSha1 ) ;
29
32
}
30
33
31
34
[ Test ]
32
35
public void CanConvertShaToOid ( )
33
36
{
34
- var id = new ObjectId ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
37
+ var id = new ObjectId ( validSha1 ) ;
38
+
35
39
id . RawId . ShouldEqual ( new byte [ ] { 206 , 8 , 254 , 72 , 132 , 101 , 15 , 6 , 123 , 213 , 112 , 59 , 106 , 89 , 168 , 179 , 179 , 201 , 154 , 9 } ) ;
36
40
}
37
41
@@ -46,39 +50,72 @@ public void CreatingObjectIdWithWrongNumberOfBytesThrows()
46
50
[ Test ]
47
51
public void DifferentObjectIdsAreEqual ( )
48
52
{
49
- var a = new ObjectId ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
50
- var b = new ObjectId ( "de08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
53
+ var a = new ObjectId ( validSha1 ) ;
54
+ var b = new ObjectId ( validSha2 ) ;
55
+
51
56
( a . Equals ( b ) ) . ShouldBeFalse ( ) ;
52
57
( b . Equals ( a ) ) . ShouldBeFalse ( ) ;
58
+
53
59
( a == b ) . ShouldBeFalse ( ) ;
54
60
( a != b ) . ShouldBeTrue ( ) ;
55
61
}
56
62
57
63
[ Test ]
58
64
public void DifferentObjectIdsDoesNotHaveSameHashCode ( )
59
65
{
60
- var a = new ObjectId ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
61
- var b = new ObjectId ( "de08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
66
+ var a = new ObjectId ( validSha1 ) ;
67
+ var b = new ObjectId ( validSha2 ) ;
68
+
62
69
a . GetHashCode ( ) . ShouldNotEqual ( b . GetHashCode ( ) ) ;
63
70
}
64
71
65
72
[ Test ]
66
73
public void SimilarObjectIdsAreEqual ( )
67
74
{
68
- var a = new ObjectId ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
69
- var b = new ObjectId ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
75
+ var a = new ObjectId ( validSha1 ) ;
76
+ var b = new ObjectId ( validSha1 ) ;
77
+
70
78
( a . Equals ( b ) ) . ShouldBeTrue ( ) ;
71
79
( b . Equals ( a ) ) . ShouldBeTrue ( ) ;
80
+
72
81
( a == b ) . ShouldBeTrue ( ) ;
73
82
( a != b ) . ShouldBeFalse ( ) ;
74
83
}
75
84
76
85
[ Test ]
77
86
public void SimilarObjectIdsHaveSameHashCode ( )
78
87
{
79
- var a = new ObjectId ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
80
- var b = new ObjectId ( "ce08fe4884650f067bd5703b6a59a8b3b3c99a09" ) ;
88
+ var a = new ObjectId ( validSha1 ) ;
89
+ var b = new ObjectId ( validSha1 ) ;
90
+
81
91
a . GetHashCode ( ) . ShouldEqual ( b . GetHashCode ( ) ) ;
82
92
}
93
+
94
+ [ TestCase ( "Dummy" , false ) ]
95
+ [ TestCase ( null , false ) ]
96
+ [ TestCase ( "" , false ) ]
97
+ [ TestCase ( "0" , false ) ]
98
+ [ TestCase ( "
F438
01" , false ) ]
99
+ [ TestCase ( "012" , false ) ]
100
+ [ TestCase ( "0123" , true ) ]
101
+ [ TestCase ( "0123456" , true ) ]
102
+ [ TestCase ( validSha1 + "d" , false ) ]
103
+ [ TestCase ( validSha1 , true ) ]
104
+ public void TryParse ( string maybeSha , bool isValidSha )
105
+ {
106
+ ObjectId parsedObjectId ;
107
+ bool result = ObjectId . TryParse ( maybeSha , out parsedObjectId ) ;
108
+ result . ShouldEqual ( isValidSha ) ;
109
+
110
+ if ( ! result )
111
+ {
112
+ return ;
113
+ }
114
+
115
+ parsedObjectId . ShouldNotBeNull ( ) ;
116
+ parsedObjectId . Sha . ShouldEqual ( maybeSha ) ;
117
+ maybeSha . StartsWith ( parsedObjectId . ToString ( 3 ) ) . ShouldBeTrue ( ) ;
118
+ parsedObjectId . ToString ( 42 ) . ShouldEqual ( maybeSha ) ;
119
+ }
83
120
}
84
121
}
0 commit comments