diff --git a/tests/administration/Administration.Service.Tests/BusinessLogic/ServiceAccountBusinessLogicTests.cs b/tests/administration/Administration.Service.Tests/BusinessLogic/ServiceAccountBusinessLogicTests.cs index 050a31d7f7..fe05bb7cc0 100644 --- a/tests/administration/Administration.Service.Tests/BusinessLogic/ServiceAccountBusinessLogicTests.cs +++ b/tests/administration/Administration.Service.Tests/BusinessLogic/ServiceAccountBusinessLogicTests.cs @@ -490,68 +490,17 @@ public async Task UpdateOwnCompanyServiceAccountDetailsAsync_WithExternalService public async Task GetOwnCompanyServiceAccountsDataAsync_GetsExpectedData(IEnumerable? userStatusIds, bool isUserInactive, IEnumerable expectedStatusIds) { // Arrange - var data = _fixture.CreateMany(15); - A.CallTo(() => _serviceAccountRepository.GetOwnCompanyServiceAccountsUntracked(A._, A._, A._, A>._)) - .Returns((int skip, int take) => Task.FromResult?>(new(data.Count(), data.Skip(skip).Take(take)))); - - A.CallTo(() => _portalRepositories.GetInstance()).Returns(_serviceAccountRepository); - var sut = new ServiceAccountBusinessLogic(_provisioningManager, _portalRepositories, _options, null!, _identityService, _serviceAccountManagement); - - // Act - var result = await sut.GetOwnCompanyServiceAccountsDataAsync(1, 10, null, null, isUserInactive, userStatusIds); - - // Assert - result.Should().NotBeNull(); - result.Content.Should().HaveCount(5); - A.CallTo(() => _serviceAccountRepository.GetOwnCompanyServiceAccountsUntracked(ValidCompanyId, null, null, A>.That.IsSameSequenceAs(expectedStatusIds))) - .MustHaveHappenedOnceExactly(); - } - - [Theory] - [InlineData(new[] { UserStatusId.INACTIVE, UserStatusId.DELETED, UserStatusId.ACTIVE }, false, new[] { UserStatusId.INACTIVE, UserStatusId.DELETED, UserStatusId.ACTIVE })] - [InlineData(new[] { UserStatusId.DELETED, UserStatusId.PENDING, UserStatusId.ACTIVE }, true, new[] { UserStatusId.DELETED, UserStatusId.PENDING, UserStatusId.ACTIVE })] - [InlineData(new UserStatusId[] { }, false, new UserStatusId[] { UserStatusId.ACTIVE, UserStatusId.PENDING, UserStatusId.PENDING_DELETION })] - [InlineData(new UserStatusId[] { }, true, new UserStatusId[] { UserStatusId.INACTIVE })] - [InlineData(null, false, new[] { UserStatusId.ACTIVE, UserStatusId.PENDING, UserStatusId.PENDING_DELETION })] - [InlineData(null, true, new[] { UserStatusId.INACTIVE })] - public async Task GetOwnCompanyServiceAccountsDataAsync_CheckInternalUserType(IEnumerable? userStatusIds, bool isUserInactive, IEnumerable expectedStatusIds) - { - // Arrange - var data = _fixture.Build() - .With(x => x.CompanyServiceAccountKindId, CompanyServiceAccountKindId.INTERNAL) - .CreateMany(15); - - A.CallTo(() => _serviceAccountRepository.GetOwnCompanyServiceAccountsUntracked(A._, A._, A._, A>._)) - .Returns((int skip, int take) => Task.FromResult?>(new(data.Count(), data.Skip(skip).Take(take)))); - - A.CallTo(() => _portalRepositories.GetInstance()).Returns(_serviceAccountRepository); - var sut = new ServiceAccountBusinessLogic(_provisioningManager, _portalRepositories, _options, null!, _identityService, _serviceAccountManagement); - - // Act - var result = await sut.GetOwnCompanyServiceAccountsDataAsync(1, 10, null, null, isUserInactive, userStatusIds); - - // Assert - result.Should().NotBeNull(); - result.Content.Should().HaveCount(5); - result.Content.Should().Contain(x => x.CompanyServiceAccountKindId == CompanyServiceAccountKindId.INTERNAL); - A.CallTo(() => _serviceAccountRepository.GetOwnCompanyServiceAccountsUntracked(ValidCompanyId, null, null, A>.That.IsSameSequenceAs(expectedStatusIds))) - .MustHaveHappenedOnceExactly(); - } - - [Theory] - [InlineData(new[] { UserStatusId.INACTIVE, UserStatusId.DELETED, UserStatusId.ACTIVE }, false, new[] { UserStatusId.INACTIVE, UserStatusId.DELETED, UserStatusId.ACTIVE })] - [InlineData(new[] { UserStatusId.DELETED, UserStatusId.PENDING, UserStatusId.ACTIVE }, true, new[] { UserStatusId.DELETED, UserStatusId.PENDING, UserStatusId.ACTIVE })] - [InlineData(new UserStatusId[] { }, false, new UserStatusId[] { UserStatusId.ACTIVE, UserStatusId.PENDING, UserStatusId.PENDING_DELETION })] - [InlineData(new UserStatusId[] { }, true, new UserStatusId[] { UserStatusId.INACTIVE })] - [InlineData(null, false, new[] { UserStatusId.ACTIVE, UserStatusId.PENDING, UserStatusId.PENDING_DELETION })] - [InlineData(null, true, new[] { UserStatusId.INACTIVE })] - public async Task GetOwnCompanyServiceAccountsDataAsync_CheckExternalUserType(IEnumerable? userStatusIds, bool isUserInactive, IEnumerable expectedStatusIds) - { - // Arrange - var data = _fixture.Build() - .With(x => x.CompanyServiceAccountKindId, CompanyServiceAccountKindId.EXTERNAL) - .CreateMany(15); - + var count = 0; + var data = _fixture + .Build() + .With(x => x.CompanyServiceAccountKindId, (IFixture _) => + { + var kind = count % 2 == 0 ? CompanyServiceAccountKindId.INTERNAL + : CompanyServiceAccountKindId.EXTERNAL; + count++; + return kind; + }) + .CreateMany(15); A.CallTo(() => _serviceAccountRepository.GetOwnCompanyServiceAccountsUntracked(A._, A._, A._, A>._)) .Returns((int skip, int take) => Task.FromResult?>(new(data.Count(), data.Skip(skip).Take(take)))); @@ -564,7 +513,14 @@ public async Task GetOwnCompanyServiceAccountsDataAsync_CheckExternalUserType(IE // Assert result.Should().NotBeNull(); result.Content.Should().HaveCount(5); - result.Content.Should().Contain(x => x.CompanyServiceAccountKindId == CompanyServiceAccountKindId.EXTERNAL); + result.Content + .Where(x => x.CompanyServiceAccountKindId == CompanyServiceAccountKindId.INTERNAL) + .Should() + .HaveCount(3); + result.Content + .Where(x => x.CompanyServiceAccountKindId == CompanyServiceAccountKindId.EXTERNAL) + .Should() + .HaveCount(2); A.CallTo(() => _serviceAccountRepository.GetOwnCompanyServiceAccountsUntracked(ValidCompanyId, null, null, A>.That.IsSameSequenceAs(expectedStatusIds))) .MustHaveHappenedOnceExactly(); }