@@ -106,11 +106,11 @@ public async Task ServerPackageRepositoryAddsPackagesFromDropFolderOnStart(bool
106106 foreach ( var packageToAddToDropFolder in packagesToAddToDropFolder )
107107 {
108108 var package = packages . FirstOrDefault (
109- p => p . Id == packageToAddToDropFolder . Value . Id
109+ p => p . Id == packageToAddToDropFolder . Value . Id
110110 && p . Version == packageToAddToDropFolder . Value . Version ) ;
111111
112112 // check the package from drop folder has been added
113- Assert . NotNull ( package ) ;
113+ Assert . NotNull ( package ) ;
114114
115115 // check the package in the drop folder has been removed
116116 Assert . False ( File . Exists ( Path . Combine ( temporaryDirectory . Path , packageToAddToDropFolder . Key ) ) ) ;
@@ -356,6 +356,98 @@ public async Task ServerPackageRepositorySearchUnlisted()
356356 }
357357 }
358358
359+ [ Fact ]
360+ public async Task ServerPackageRepositorySearchUnlistingDisabledAndExclude ( )
361+ {
362+ await ServerPackageRepositorySearchUnlistedWithOptions (
363+ enableUnlisting : false ,
364+ allowUnlistedVersions : false ,
365+ searchable : false ,
366+ gettable : false ) ;
367+ }
368+
369+ [ Fact ]
370+ public async Task ServerPackageRepositorySearchUnlistingDisabledAndInclude ( )
371+ {
372+ await ServerPackageRepositorySearchUnlistedWithOptions (
373+ enableUnlisting : false ,
374+ allowUnlistedVersions : true ,
375+ searchable : false ,
376+ gettable : false ) ;
377+ }
378+
379+ [ Fact ]
380+ public async Task ServerPackageRepositorySearchUnlistingEnabledAndExclude ( )
381+ {
382+ await ServerPackageRepositorySearchUnlistedWithOptions (
383+ enableUnlisting : true ,
384+ allowUnlistedVersions : false ,
385+ searchable : false ,
386+ gettable : true ) ;
387+ }
388+
389+ [ Fact ]
390+ public async Task ServerPackageRepositorySearchUnlistingEnabledAndInclude ( )
391+ {
392+ await ServerPackageRepositorySearchUnlistedWithOptions (
393+ enableUnlisting : true ,
394+ allowUnlistedVersions : true ,
395+ searchable : true ,
396+ gettable : true ) ;
397+ }
398+
399+ private async Task ServerPackageRepositorySearchUnlistedWithOptions (
400+ bool enableUnlisting , bool allowUnlistedVersions , bool searchable , bool gettable )
401+ {
402+ using ( var temporaryDirectory = new TemporaryDirectory ( ) )
403+ {
404+ // Arrange
405+ var getSetting = enableUnlisting ? EnableDelisting : ( Func < string , object , object > ) null ;
406+ var serverRepository = await CreateServerPackageRepositoryAsync ( temporaryDirectory . Path , repository =>
407+ {
408+ repository . AddPackage ( CreatePackage ( "test1" , "1.0" ) ) ;
409+ } , getSetting ) ;
410+
411+ // Remove the package
412+ await serverRepository . RemovePackageAsync ( "test1" , new SemanticVersion ( "1.0" ) , Token ) ;
413+
414+ // Verify that the package is not returned by search
415+ var packages = ( await serverRepository . SearchAsync (
416+ "test1" ,
417+ allowPrereleaseVersions : true ,
418+ allowUnlistedVersions : allowUnlistedVersions ,
419+ compatibility : ClientCompatibility . Max ,
420+ token : Token ) ) . ToList ( ) ;
421+ if ( searchable )
422+ {
423+ Assert . Equal ( 1 , packages . Count ) ;
424+ Assert . Equal ( "test1" , packages [ 0 ] . Id ) ;
425+ Assert . Equal ( "1.0" , packages [ 0 ] . Version . ToString ( ) ) ;
426+ Assert . False ( packages [ 0 ] . Listed ) ;
427+ }
428+ else
429+ {
430+ Assert . Equal ( 0 , packages . Count ) ;
431+ }
432+
433+ // Act: search with includeDelisted=true
434+ packages = ( await serverRepository . GetPackagesAsync ( ClientCompatibility . Max , Token ) ) . ToList ( ) ;
435+
436+ // Assert
437+ if ( gettable )
438+ {
439+ Assert . Equal ( 1 , packages . Count ) ;
440+ Assert . Equal ( "test1" , packages [ 0 ] . Id ) ;
441+ Assert . Equal ( "1.0" , packages [ 0 ] . Version . ToString ( ) ) ;
442+ Assert . False ( packages [ 0 ] . Listed ) ;
443+ }
444+ else
445+ {
446+ Assert . Equal ( 0 , packages . Count ) ;
447+ }
448+ }
449+ }
450+
359451 [ Fact ]
360452 public async Task ServerPackageRepositoryFindPackageById ( )
361453 {
@@ -463,7 +555,7 @@ public async Task ServerPackageRepositoryFindPackage()
463555 new SemanticVersion ( "1.0.0-alpha" ) ,
464556 Token ) ;
465557 var invalidPreRel = await serverRepository . FindPackageAsync (
466- "test3" ,
558+ "test3" ,
467559 new SemanticVersion ( "1.0.0" ) ,
468560 Token ) ;
469561 var invalid = await serverRepository . FindPackageAsync ( "bad" , new SemanticVersion ( "1.0" ) , Token ) ;
@@ -586,7 +678,7 @@ public async Task ServerPackageRepositoryIsLatestOnlyPreRel()
586678 repository . AddPackage ( CreatePackage ( "test" , "2.1-alpha" ) ) ;
587679 repository . AddPackage ( CreatePackage ( "test" , "2.2-beta+tagged" ) ) ;
588680 } ) ;
589-
681+
590682 // Act
591683 var packages = await serverRepository . GetPackagesAsync ( ClientCompatibility . Max , Token ) ;
592684
0 commit comments