@@ -131,6 +131,8 @@ await deleteAccountService.DeleteAccountAsync(
131131 Assert . NotEmpty ( testUser . SecurityPolicies ) ;
132132 Assert . True ( registration . Packages . Single ( ) . Listed ) ;
133133 Assert . NotNull ( testUser . EmailAddress ) ;
134+ Assert . NotNull ( testableService . PackagePushedByUser . User ) ;
135+ Assert . NotNull ( testableService . DeprecationDeprecatedByUser . DeprecatedByUser ) ;
134136 Assert . Empty ( testableService . DeletedAccounts ) ;
135137 Assert . NotEmpty ( testableService . PackageOwnerRequests ) ;
136138 Assert . False ( testableService . HasDeletedOwnerScope ) ;
@@ -148,6 +150,8 @@ await deleteAccountService.DeleteAccountAsync(
148150 orphanPolicy == AccountDeletionOrphanPackagePolicy . UnlistOrphans && isPackageOrphaned ,
149151 ! registration . Packages . Single ( ) . Listed ) ;
150152 Assert . Null ( testUser . EmailAddress ) ;
153+ Assert . Null ( testableService . PackagePushedByUser . User ) ;
154+ Assert . Null ( testableService . DeprecationDeprecatedByUser . DeprecatedByUser ) ;
151155 Assert . Single ( testableService . DeletedAccounts ) ;
152156 Assert . Empty ( testableService . PackageOwnerRequests ) ;
153157 Assert . True ( testableService . HasDeletedOwnerScope ) ;
@@ -259,6 +263,8 @@ public async Task DeleteOrganization(bool isPackageOrphaned, AccountDeletionOrph
259263 Assert . Equal ( organization . Confirmed , organization . EmailAddress != null ) ;
260264 Assert . True ( registration . Owners . Any ( o => o . MatchesUser ( organization ) ) ) ;
261265 Assert . NotEmpty ( organization . SecurityPolicies ) ;
266+ Assert . NotNull ( testableService . PackagePushedByUser . User ) ;
267+ Assert . NotNull ( testableService . DeprecationDeprecatedByUser . DeprecatedByUser ) ;
262268 Assert . Empty ( testableService . DeletedAccounts ) ;
263269 Assert . NotEmpty ( testableService . PackageOwnerRequests ) ;
264270 Assert . Empty ( testableService . AuditService . Records ) ;
@@ -274,6 +280,8 @@ public async Task DeleteOrganization(bool isPackageOrphaned, AccountDeletionOrph
274280 ! registration . Packages . Single ( ) . Listed ) ;
275281 Assert . False ( registration . Owners . Any ( o => o . MatchesUser ( organization ) ) ) ;
276282 Assert . Empty ( organization . SecurityPolicies ) ;
283+ Assert . Null ( testableService . PackagePushedByUser . User ) ;
284+ Assert . Null ( testableService . DeprecationDeprecatedByUser . DeprecatedByUser ) ;
277285 Assert . Single ( testableService . DeletedAccounts ) ;
278286 Assert . Empty ( testableService . PackageOwnerRequests ) ;
279287 Assert . Single ( testableService . AuditService . Records ) ;
@@ -334,6 +342,8 @@ public async Task DeleteUnconfirmedOrganization(bool isPackageOrphaned)
334342 Assert . Empty ( registration . Owners ) ;
335343 Assert . Empty ( organization . SecurityPolicies ) ;
336344 Assert . Empty ( organization . ReservedNamespaces ) ;
345+ Assert . Null ( testableService . PackagePushedByUser . User ) ;
346+ Assert . Null ( testableService . DeprecationDeprecatedByUser . DeprecatedByUser ) ;
337347 Assert . Empty ( testableService . DeletedAccounts ) ;
338348 Assert . Single ( testableService . SupportRequests ) ;
339349 Assert . Empty ( testableService . PackageOwnerRequests ) ;
@@ -467,6 +477,8 @@ public class DeleteAccountTestService
467477 public List < AccountDelete > DeletedAccounts = new List < AccountDelete > ( ) ;
468478 public List < User > DeletedUsers = new List < User > ( ) ;
469479 public List < Issue > SupportRequests = new List < Issue > ( ) ;
480+ public Package PackagePushedByUser ;
481+ public PackageDeprecation DeprecationDeprecatedByUser ;
470482 public List < PackageOwnerRequest > PackageOwnerRequests = new List < PackageOwnerRequest > ( ) ;
471483 public FakeAuditingService AuditService = new FakeAuditingService ( ) ;
472484 public bool HasDeletedOwnerScope => _hasDeletedCredentialWithOwnerScope ;
@@ -520,6 +532,18 @@ public DeleteAccountTestService(User user, PackageRegistration userPackagesRegis
520532 PackageRegistration = new PackageRegistration ( ) { Id = $ "{ user . Username } _second" } ,
521533 NewOwner = _user
522534 } ) ;
535+
536+ PackagePushedByUser = new Package
537+ {
538+ User = _user ,
539+ UserKey = _user . Key
540+ } ;
541+
542+ DeprecationDeprecatedByUser = new PackageDeprecation
543+ {
544+ DeprecatedByUser = _user ,
545+ DeprecatedByUserKey = _user . Key
546+ } ;
523547 }
524548
525549 public DeleteAccountTestService ( )
@@ -528,7 +552,9 @@ public DeleteAccountTestService()
528552
529553 public DeleteAccountService GetDeleteAccountService ( bool isPackageOrphaned , bool isFeatureFlagsRemovalSuccessful = true )
530554 {
531- return new DeleteAccountService ( SetupAccountDeleteRepository ( ) . Object ,
555+ return new DeleteAccountService (
556+ SetupAccountDeleteRepository ( ) . Object ,
557+ SetupDeprecationRepository ( ) . Object ,
532558 SetupUserRepository ( ) . Object ,
533559 SetupScopeRepository ( ) . Object ,
534560 SetupEntitiesContext ( ) . Object ,
@@ -563,8 +589,24 @@ private Mock<IEntitiesContext> SetupEntitiesContext()
563589 {
564590 var mockContext = new Mock < IEntitiesContext > ( ) ;
565591 var database = new Mock < IDatabase > ( ) ;
566- database . Setup ( x => x . BeginTransaction ( ) ) . Returns ( ( ) => new Mock < IDbContextTransaction > ( ) . Object ) ;
567- mockContext . Setup ( m => m . GetDatabase ( ) ) . Returns ( database . Object ) ;
592+ database
593+ . Setup ( x => x . BeginTransaction ( ) )
594+ . Returns ( ( ) => new Mock < IDbContextTransaction > ( ) . Object ) ;
595+
596+ mockContext
597+ . Setup ( m => m . GetDatabase ( ) )
598+ . Returns ( database . Object ) ;
599+
600+ var packageDbSet = FakeEntitiesContext . CreateDbSet < Package > ( ) ;
601+ mockContext
602+ . Setup ( x => x . Packages )
603+ . Returns ( packageDbSet ) ;
604+
605+ if ( PackagePushedByUser != null )
606+ {
607+ packageDbSet . Add ( PackagePushedByUser ) ;
608+ }
609+
568610 return mockContext ;
569611 }
570612
@@ -574,8 +616,8 @@ private Mock<IReservedNamespaceService> SetupReservedNamespaceService()
574616 if ( _user != null )
575617 {
576618 namespaceService . Setup ( m => m . DeleteOwnerFromReservedNamespaceAsync ( It . IsAny < string > ( ) , It . IsAny < string > ( ) , false ) )
577- . Returns ( Task . CompletedTask )
578- . Callback ( ( ) => _user . ReservedNamespaces . Remove ( _reservedNamespace ) ) ;
619+ . Returns ( Task . CompletedTask )
620+ . Callback ( ( ) => _user . ReservedNamespaces . Remove ( _reservedNamespace ) ) ;
579621 }
580622
581623 return namespaceService ;
@@ -587,8 +629,8 @@ private Mock<ISecurityPolicyService> SetupSecurityPolicyService()
587629 if ( _user != null )
588630 {
589631 securityPolicyService . Setup ( m => m . UnsubscribeAsync ( _user , SubscriptionName , false ) )
590- . Returns ( Task . CompletedTask )
591- . Callback ( ( ) => _user . SecurityPolicies . Remove ( _securityPolicy ) ) ;
632+ . Returns ( Task . CompletedTask )
633+ . Callback ( ( ) => _user . SecurityPolicies . Remove ( _securityPolicy ) ) ;
592634 }
593635
594636 return securityPolicyService ;
@@ -597,11 +639,27 @@ private Mock<ISecurityPolicyService> SetupSecurityPolicyService()
597639 private Mock < IEntityRepository < AccountDelete > > SetupAccountDeleteRepository ( )
598640 {
599641 var accountDeleteRepository = new Mock < IEntityRepository < AccountDelete > > ( ) ;
600- accountDeleteRepository . Setup ( m => m . InsertOnCommit ( It . IsAny < AccountDelete > ( ) ) )
601- . Callback < AccountDelete > ( account => DeletedAccounts . Add ( account ) ) ;
642+ accountDeleteRepository
643+ . Setup ( m => m . InsertOnCommit ( It . IsAny < AccountDelete > ( ) ) )
644+ . Callback < AccountDelete > ( account => DeletedAccounts . Add ( account ) ) ;
645+
602646 return accountDeleteRepository ;
603647 }
604648
649+ private Mock < IEntityRepository < PackageDeprecation > > SetupDeprecationRepository ( )
650+ {
651+ var deprecationRepository = new Mock < IEntityRepository < PackageDeprecation > > ( ) ;
652+ var deprecations = DeprecationDeprecatedByUser == null
653+ ? Enumerable . Empty < PackageDeprecation > ( )
654+ : new [ ] { DeprecationDeprecatedByUser } ;
655+
656+ deprecationRepository
657+ . Setup ( x => x . GetAll ( ) )
658+ . Returns ( deprecations . AsQueryable ( ) ) ;
659+
660+ return deprecationRepository ;
661+ }
662+
605663 private Mock < IEntityRepository < User > > SetupUserRepository ( )
606664 {
607665 var userRepository = new Mock < IEntityRepository < User > > ( ) ;
@@ -657,8 +715,8 @@ private Mock<IPackageService> SetupPackageService(bool isPackageOrphaned)
657715
658716 //the .Returns(Task.CompletedTask) to avoid NullRef exception by the Mock infrastructure when invoking async operations
659717 packageService . Setup ( m => m . MarkPackageUnlistedAsync ( It . IsAny < Package > ( ) , false ) )
660- . Returns ( Task . CompletedTask )
661- . Callback < Package , bool > ( ( package , commit ) => { package . Listed = false ; } ) ;
718+ . Returns ( Task . CompletedTask )
719+ . Callback < Package , bool > ( ( package , commit ) => { package . Listed = false ; } ) ;
662720
663721 return packageService ;
664722 }
@@ -689,8 +747,8 @@ private Mock<ISupportRequestService> SetupSupportRequestService()
689747 {
690748 var issue = SupportRequests . Where ( i => string . Equals ( i . CreatedBy , _user . Username ) ) . FirstOrDefault ( ) ;
691749 supportService . Setup ( m => m . DeleteSupportRequestsAsync ( _user ) )
692- . Returns ( Task . FromResult ( true ) )
693- . Callback ( ( ) => SupportRequests . Remove ( issue ) ) ;
750+ . Returns ( Task . FromResult ( true ) )
751+ . Callback ( ( ) => SupportRequests . Remove ( issue ) ) ;
694752 }
695753
696754 return supportService ;
@@ -715,13 +773,14 @@ private Mock<IPackageOwnershipManagementService> SetupPackageOwnershipManagement
715773 var packageOwnershipManagementService = new Mock < IPackageOwnershipManagementService > ( ) ;
716774 if ( _user != null )
717775 {
718- packageOwnershipManagementService . Setup ( m => m . RemovePackageOwnerAsync ( It . IsAny < PackageRegistration > ( ) , It . IsAny < User > ( ) , It . IsAny < User > ( ) , false ) )
719- . Returns ( Task . CompletedTask )
720- . Callback ( ( ) =>
721- {
722- _userPackagesRegistration . Owners . Remove ( _user ) ;
723- _userPackagesRegistration . ReservedNamespaces . Remove ( _reservedNamespace ) ;
724- } ) ;
776+ packageOwnershipManagementService
777+ . Setup ( m => m . RemovePackageOwnerAsync ( It . IsAny < PackageRegistration > ( ) , It . IsAny < User > ( ) , It . IsAny < User > ( ) , false ) )
778+ . Returns ( Task . CompletedTask )
779+ . Callback ( ( ) =>
780+ {
781+ _userPackagesRegistration . Owners . Remove ( _user ) ;
782+ _userPackagesRegistration . ReservedNamespaces . Remove ( _reservedNamespace ) ;
783+ } ) ;
725784
726785 packageOwnershipManagementService . Setup ( m => m . GetPackageOwnershipRequests ( null , null , _user ) )
727786 . Returns ( PackageOwnerRequests ) ;
0 commit comments