@@ -27,11 +27,12 @@ namespace DemaConsulting.SpdxModel.Tests;
2727public class SpdxFileTests
2828{
2929 /// <summary>
30- /// Tests the <see cref="SpdxFile.Same"/> comparer.
30+ /// Tests the <see cref="SpdxFile.Same"/> comparer compares files correctly .
3131 /// </summary>
3232 [ TestMethod ]
33- public void FileSameComparer ( )
33+ public void SpdxFile_SameComparer_ComparesCorrectly ( )
3434 {
35+ // Arrange: Create several SpdxFile instances with different IDs, names, and checksums
3536 var f1 = new SpdxFile
3637 {
3738 FileName = "./file1.txt" ,
@@ -44,7 +45,6 @@ public void FileSameComparer()
4445 }
4546 ]
4647 } ;
47-
4848 var f2 = new SpdxFile
4949 {
5050 Id = "SPDXRef-File1" ,
@@ -64,7 +64,6 @@ public void FileSameComparer()
6464 ] ,
6565 Comment = "File 1"
6666 } ;
67-
6867 var f3 = new SpdxFile
6968 {
7069 FileName = "./file2.txt" ,
@@ -78,29 +77,30 @@ public void FileSameComparer()
7877 ]
7978 } ;
8079
81- // Assert files compare to themselves
80+ // Assert: Verify files compare to themselves
8281 Assert . IsTrue ( SpdxFile . Same . Equals ( f1 , f1 ) ) ;
8382 Assert . IsTrue ( SpdxFile . Same . Equals ( f2 , f2 ) ) ;
8483 Assert . IsTrue ( SpdxFile . Same . Equals ( f3 , f3 ) ) ;
8584
86- // Assert files compare correctly
85+ // Assert: Verify files compare correctly
8786 Assert . IsTrue ( SpdxFile . Same . Equals ( f1 , f2 ) ) ;
8887 Assert . IsTrue ( SpdxFile . Same . Equals ( f2 , f1 ) ) ;
8988 Assert . IsFalse ( SpdxFile . Same . Equals ( f1 , f3 ) ) ;
9089 Assert . IsFalse ( SpdxFile . Same . Equals ( f3 , f1 ) ) ;
9190 Assert . IsFalse ( SpdxFile . Same . Equals ( f2 , f3 ) ) ;
9291 Assert . IsFalse ( SpdxFile . Same . Equals ( f3 , f2 ) ) ;
9392
94- // Assert same files have identical hashes
93+ // Assert: Verify same files have identical hashes
9594 Assert . AreEqual ( SpdxFile . Same . GetHashCode ( f1 ) , SpdxFile . Same . GetHashCode ( f2 ) ) ;
9695 }
9796
9897 /// <summary>
99- /// Tests the <see cref="SpdxFile.DeepCopy"/> method.
98+ /// Tests the <see cref="SpdxFile.DeepCopy"/> method successfully creates a deep copy .
10099 /// </summary>
101100 [ TestMethod ]
102- public void DeepCopy ( )
101+ public void SpdxFile_DeepCopy_CreatesEqualButDistinctInstance ( )
103102 {
103+ // Arrange: Create an SpdxFile instance with checksums and comments
104104 var f1 = new SpdxFile
105105 {
106106 Id = "SPDXRef-File1" ,
@@ -121,27 +121,28 @@ public void DeepCopy()
121121 Comment = "File 1"
122122 } ;
123123
124- // Make deep copy
124+ // Act: Create a deep copy of the SpdxFile instance
125125 var f2 = f1 . DeepCopy ( ) ;
126126
127- // Assert both objects are equal
127+ // Assert: Verify deep-copy is equal to original
128128 Assert . AreEqual ( f1 , f2 , SpdxFile . Same ) ;
129129 Assert . AreEqual ( f1 . Id , f2 . Id ) ;
130130 Assert . AreEqual ( f1 . FileName , f2 . FileName ) ;
131131 CollectionAssert . AreEquivalent ( f1 . Checksums , f2 . Checksums , SpdxChecksum . Same ) ;
132132 Assert . AreEqual ( f1 . Comment , f2 . Comment ) ;
133133
134- // Assert separate instances
134+ // Assert: Verify deep-copy has distinct instances
135135 Assert . IsFalse ( ReferenceEquals ( f1 , f2 ) ) ;
136136 Assert . IsFalse ( ReferenceEquals ( f1 . Checksums , f2 . Checksums ) ) ;
137137 }
138138
139139 /// <summary>
140- /// Tests the <see cref="SpdxFile.Enhance(SpdxFile[], SpdxFile[])"/> method.
140+ /// Tests the <see cref="SpdxFile.Enhance(SpdxFile[], SpdxFile[])"/> method correctly adds or updates information
141141 /// </summary>
142142 [ TestMethod ]
143- public void Enhance ( )
143+ public void SpdxFile_Enhance_AddsOrUpdatesInformationCorrectly ( )
144144 {
145+ // Arrange: Create an array of SpdxFile objects with one file
145146 var files = new [ ]
146147 {
147148 new SpdxFile
@@ -158,6 +159,7 @@ public void Enhance()
158159 }
159160 } ;
160161
162+ // Act: Enhance the files with additional information
161163 files = SpdxFile . Enhance (
162164 files ,
163165 [
@@ -194,6 +196,7 @@ public void Enhance()
194196 }
195197 ] ) ;
196198
199+ // Assert: Verify the files array has been enhanced correctly
197200 Assert . AreEqual ( 2 , files . Length ) ;
198201 Assert . AreEqual ( "SPDXRef-File1" , files [ 0 ] . Id ) ;
199202 Assert . AreEqual ( "./file1.txt" , files [ 0 ] . FileName ) ;
@@ -210,7 +213,37 @@ public void Enhance()
210213 }
211214
212215 /// <summary>
213- /// Tests the <see cref="SpdxFileTypeExtensions.FromText(string)"/> method.
216+ /// Tests that an invalid file ID fails validation.
217+ /// </summary>
218+ [ TestMethod ]
219+ public void SpdxFile_Validate_ReportsInvalidFileId ( )
220+ {
221+ // Arrange: Create an SpdxFile instance with an invalid ID format
222+ var spdxFile = new SpdxFile
223+ {
224+ Id = "Invalid_ID" ,
225+ FileName = "./file1.txt" ,
226+ Checksums =
227+ [
228+ new SpdxChecksum
229+ {
230+ Algorithm = SpdxChecksumAlgorithm . Sha1 ,
231+ Value = "85ed0817af83a24ad8da68c2b5094de69833983c"
232+ }
233+ ]
234+ } ;
235+
236+ // Act: Perform validation on the SpdxFile instance.
237+ var issues = new List < string > ( ) ;
238+ spdxFile . Validate ( issues ) ;
239+
240+ // Assert: Verify that the validation fails and the error message includes the invalid ID.
241+ Assert . IsTrue (
242+ issues . Any ( issue => issue . Contains ( "File ./file1.txt Invalid SPDX Identifier Field" ) ) ) ;
243+ }
244+
245+ /// <summary>
246+ /// Tests the <see cref="SpdxFileTypeExtensions.FromText(string)"/> method with valid inputs.
214247 /// </summary>
215248 [ TestMethod ]
216249 public void SpdxFileTypeExtensions_FromText_Valid ( )
@@ -231,7 +264,7 @@ public void SpdxFileTypeExtensions_FromText_Valid()
231264 }
232265
233266 /// <summary>
234- /// Tests the <see cref="SpdxFileTypeExtensions.FromText(string)"/> method.
267+ /// Tests the <see cref="SpdxFileTypeExtensions.FromText(string)"/> method with invalid input .
235268 /// </summary>
236269 [ TestMethod ]
237270 public void SpdxFileTypeExtensions_FromText_Invalid ( )
@@ -241,7 +274,7 @@ public void SpdxFileTypeExtensions_FromText_Invalid()
241274 }
242275
243276 /// <summary>
244- /// Tests the <see cref="SpdxFileTypeExtensions.ToText"/> method.
277+ /// Tests the <see cref="SpdxFileTypeExtensions.ToText"/> method with valid inputs
245278 /// </summary>
246279 [ TestMethod ]
247280 public void SpdxFileTypeExtensions_ToText_Valid ( )
@@ -260,7 +293,7 @@ public void SpdxFileTypeExtensions_ToText_Valid()
260293 }
261294
262295 /// <summary>
263- /// Tests the <see cref="SpdxFileTypeExtensions.ToText"/> method.
296+ /// Tests the <see cref="SpdxFileTypeExtensions.ToText"/> method with invalid input .
264297 /// </summary>
265298 [ TestMethod ]
266299 public void SpdxFileTypeExtensions_ToText_Invalid ( )
0 commit comments