From d5b9832fab65a85849e3fc33c41a6b96d9157805 Mon Sep 17 00:00:00 2001 From: AnuragNagpure <145100366+AnuragNagpure@users.noreply.github.com> Date: Tue, 27 Aug 2024 12:34:50 +0530 Subject: [PATCH] fix(connectors): add updation for provider and host company id in managed endpoint (#948) Refs: #944 Co-authored-by: Phil Schneider Reviewed-by: Phil Schneider --- .../BusinessLogic/ConnectorsBusinessLogic.cs | 2 +- .../ConnectorsBusinessLogicTests.cs | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs b/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs index 9828763d6d..7bfd78f604 100644 --- a/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs +++ b/src/administration/Administration.Service/BusinessLogic/ConnectorsBusinessLogic.cs @@ -157,7 +157,7 @@ private async Task CreateManagedConnectorInternalAsync(ManagedConnectorInp await ValidateTechnicalUser(technicalUserId, result.CompanyId).ConfigureAwait(ConfigureAwaitOptions.None); - var connectorRequestModel = new ConnectorRequestModel(name, connectorUrl, ConnectorTypeId.CONNECTOR_AS_A_SERVICE, location, result.CompanyId, companyId, technicalUserId); + var connectorRequestModel = new ConnectorRequestModel(name, connectorUrl, ConnectorTypeId.CONNECTOR_AS_A_SERVICE, location, companyId, result.CompanyId, technicalUserId); return await CreateAndRegisterConnectorAsync( connectorRequestModel, result.ProviderBpn, diff --git a/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs b/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs index 222042dc82..1a0d4f1deb 100644 --- a/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs +++ b/tests/administration/Administration.Service.Tests/BusinessLogic/ConnectorsBusinessLogicTests.cs @@ -44,6 +44,7 @@ public class ConnectorsBusinessLogicTests private static readonly Guid CompanyUserId = new("ac1cf001-7fbc-1f2f-817f-bce058020002"); private static readonly Guid ServiceAccountUserId = new("ac1cf001-7fbc-1f2f-817f-bce058020003"); private static readonly Guid ValidCompanyId = Guid.NewGuid(); + private static readonly Guid HostCompanyId = new("ac1cf001-7fbc-1f2f-817f-bce058020029"); private static readonly Guid CompanyIdWithoutSdDocument = Guid.NewGuid(); private static readonly Guid ExistingConnectorId = Guid.NewGuid(); private static readonly Guid CompanyWithoutBpnId = Guid.NewGuid(); @@ -312,13 +313,15 @@ public async Task CreateManagedConnectorAsync_WithValidInput_ReturnsCreatedConne }), _sdFactoryBusinessLogic, _identityService, A.Fake>()); var connectorInput = new ManagedConnectorInputModel("connectorName", "https://test.de", "de", _validOfferSubscriptionId, ServiceAccountUserId); - + SetupCheckActiveServiceAccountExistsForCompanyAsyncForManaged(); // Act var result = await sut.CreateManagedConnectorAsync(connectorInput, CancellationToken.None); // Assert result.Should().NotBeEmpty(); - _connectors.Should().HaveCount(1); + _connectors.Should().ContainSingle().And.Satisfy(x => + x.HostId == HostCompanyId && + x.ProviderId == _identity.CompanyId); A.CallTo(() => _connectorsRepository.CreateConnectorAssignedSubscriptions(A._, _validOfferSubscriptionId)).MustHaveHappenedOnceExactly(); A.CallTo(() => _sdFactoryBusinessLogic.RegisterConnectorAsync(A._, A._, A._, A._)).MustHaveHappened(clearingHouseDisabled ? 0 : 1, Times.Exactly); } @@ -505,7 +508,7 @@ public async Task CreateManagedConnectorAsync_WithInvalidTechnicalUser_ThrowsCon x.Value == saId.ToString(), y => y.Name == "companyId" && - y.Value == _identity.CompanyId.ToString() + y.Value == HostCompanyId.ToString() ); } @@ -1333,7 +1336,7 @@ private void SetupRepositoryMethods() A.CallTo(() => _companyRepository.GetCompanyBpnAndSelfDescriptionDocumentByIdAsync(A.That.Not.Matches(x => x == ValidCompanyId || x == CompanyIdWithoutSdDocument))) .Returns((null, null)); A.CallTo(() => _offerSubscriptionRepository.CheckOfferSubscriptionWithOfferProvider(_validOfferSubscriptionId, ValidCompanyId)) - .Returns((true, true, false, OfferSubscriptionStatusId.ACTIVE, Guid.NewGuid(), ValidCompanyId, ValidCompanyBpn)); + .Returns((true, true, false, OfferSubscriptionStatusId.ACTIVE, Guid.NewGuid(), ProviderCompanyId: HostCompanyId, ValidCompanyBpn)); A.CallTo(() => _connectorsRepository.CreateConnector(A._, A._, A._, A?>._)) .Invokes((string name, string location, string connectorUrl, Action? setupOptionalFields) => @@ -1375,6 +1378,12 @@ private void SetupRepositoryMethods() A.CallTo(() => _portalRepositories.GetInstance()).Returns(_processStepRepository); } + private void SetupCheckActiveServiceAccountExistsForCompanyAsyncForManaged() + { + A.CallTo(() => _serviceAccountRepository.CheckActiveServiceAccountExistsForCompanyAsync(ServiceAccountUserId, HostCompanyId)) + .Returns(true); + } + private void SetupIdentity() { A.CallTo(() => _identity.IdentityId).Returns(CompanyUserId);