@@ -288,8 +288,11 @@ public void GitHubRepoConnector_GetCommitsInRange_ToHashNotFound_ReturnsEmptyLis
288288 [ TestMethod ]
289289 public void GitHubRepoConnector_GenerateGitHubChangelogLink_ValidTags_ReturnsWebLink ( )
290290 {
291+ // Arrange
292+ var branchTagNames = new HashSet < string > { "v1.0.0" , "v2.0.0" } ;
293+
291294 // Act
292- var link = GitHubRepoConnector . GenerateGitHubChangelogLink ( "owner" , "repo" , "v1.0.0" , "v2.0.0" ) ;
295+ var link = GitHubRepoConnector . GenerateGitHubChangelogLink ( "owner" , "repo" , "v1.0.0" , "v2.0.0" , branchTagNames ) ;
293296
294297 // Assert
295298 Assert . IsNotNull ( link ) ;
@@ -303,8 +306,59 @@ public void GitHubRepoConnector_GenerateGitHubChangelogLink_ValidTags_ReturnsWeb
303306 [ TestMethod ]
304307 public void GitHubRepoConnector_GenerateGitHubChangelogLink_NullOldTag_ReturnsNull ( )
305308 {
309+ // Arrange
310+ var branchTagNames = new HashSet < string > { "v2.0.0" } ;
311+
312+ // Act
313+ var link = GitHubRepoConnector . GenerateGitHubChangelogLink ( "owner" , "repo" , null , "v2.0.0" , branchTagNames ) ;
314+
315+ // Assert
316+ Assert . IsNull ( link ) ;
317+ }
318+
319+ /// <summary>
320+ /// Test that GenerateGitHubChangelogLink returns null when oldTag is not in branch tags.
321+ /// </summary>
322+ [ TestMethod ]
323+ public void GitHubRepoConnector_GenerateGitHubChangelogLink_OldTagNotInBranch_ReturnsNull ( )
324+ {
325+ // Arrange
326+ var branchTagNames = new HashSet < string > { "v2.0.0" } ;
327+
306328 // Act
307- var link = GitHubRepoConnector . GenerateGitHubChangelogLink ( "owner" , "repo" , null , "v2.0.0" ) ;
329+ var link = GitHubRepoConnector . GenerateGitHubChangelogLink ( "owner" , "repo" , "v1.0.0" , "v2.0.0" , branchTagNames ) ;
330+
331+ // Assert
332+ Assert . IsNull ( link ) ;
333+ }
334+
335+ /// <summary>
336+ /// Test that GenerateGitHubChangelogLink returns null when newTag is not in branch tags.
337+ /// </summary>
338+ [ TestMethod ]
339+ public void GitHubRepoConnector_GenerateGitHubChangelogLink_NewTagNotInBranch_ReturnsNull ( )
340+ {
341+ // Arrange
342+ var branchTagNames = new HashSet < string > { "v1.0.0" } ;
343+
344+ // Act
345+ var link = GitHubRepoConnector . GenerateGitHubChangelogLink ( "owner" , "repo" , "v1.0.0" , "v2.0.0" , branchTagNames ) ;
346+
347+ // Assert
348+ Assert . IsNull ( link ) ;
349+ }
350+
351+ /// <summary>
352+ /// Test that GenerateGitHubChangelogLink returns null when neither tag is in branch tags.
353+ /// </summary>
354+ [ TestMethod ]
355+ public void GitHubRepoConnector_GenerateGitHubChangelogLink_NoTagsInBranch_ReturnsNull ( )
356+ {
357+ // Arrange
358+ var branchTagNames = new HashSet < string > ( ) ;
359+
360+ // Act
361+ var link = GitHubRepoConnector . GenerateGitHubChangelogLink ( "owner" , "repo" , "v1.0.0" , "v2.0.0" , branchTagNames ) ;
308362
309363 // Assert
310364 Assert . IsNull ( link ) ;
@@ -325,6 +379,7 @@ public void GitHubRepoConnector_DetermineTargetVersion_ProvidedVersion_ReturnsPr
325379 [ ] ,
326380 [ ] ,
327381 [ ] ,
382+ [ ] ,
328383 [ ] ) ;
329384
330385 // Act
@@ -349,6 +404,7 @@ public void GitHubRepoConnector_DetermineTargetVersion_NoVersionNoReleases_Throw
349404 [ ] ,
350405 [ ] ,
351406 [ ] ,
407+ [ ] ,
352408 [ ] ) ;
353409
354410 InvalidOperationException ? caughtException = null ;
@@ -386,6 +442,7 @@ public void GitHubRepoConnector_DetermineBaselineVersion_NoReleases_ReturnsNull(
386442 [ ] ,
387443 [ ] ,
388444 [ ] ,
445+ [ ] ,
389446 [ ] ) ;
390447
391448 // Act
0 commit comments