/// <inheritdoc /> public Task <CreateBpIdTypeResponse> CreateIdType(IdentifierRequest identifierRequest) { var bpIdentifier = new BpIdentifier(identifierRequest); var response = new CreateBpIdTypeResponse(); var mcfResponse = _mcfClient.CreateIdentifier(bpIdentifier); if (mcfResponse == null) { const string uiFailureMessage = "Failed to create business partner identifier"; _logger.LogError($"{ uiFailureMessage }: {identifierRequest.ToJson()}"); throw new InternalServerException(uiFailureMessage); } response.HttpStatusCode = mcfResponse.HttpStatusCode; if (mcfResponse.Error != null) { const string uiFailureMessage = "Failed to create business partner identifier"; _logger.LogError($"{ mcfResponse.Error.ToJson() }: {identifierRequest.ToJson()}"); response.ErrorMessage = uiFailureMessage; } else { response.BpIdType = mcfResponse.Result.ToModel(); } return(Task.FromResult(response)); }
public async Task UpdateIdentifier_AccountWithIdentifier_IdentifierChangesSaved() { // Arrange var user = TestHelper.ActivePaUser; var loginResponse = await AuthClient.GetJwtToken(user.Username, "Start@123"); user.SetJwtEncodedString(loginResponse.Data.JwtAccessToken); UserContext.SetUser(user); var bpNumber = user.BPNumber.ToString(); var startSocial = GetLast4Social(bpNumber); var identifier = new BpIdentifier { AccountId = bpNumber, IdentifierType = IdentifierType.ZLAST4.ToString(), IdentifierNo = startSocial == "9999" ? "1111" : "9999" }; // Act var response = McfClient.UpdateIdentifier(identifier); // Assert response.ShouldNotBeNull(); response.HttpStatusCode.ShouldBe(HttpStatusCode.NoContent); GetLast4Social(bpNumber).ShouldBe(identifier.IdentifierNo); }
public async Task UpdateIdentifier_IdentifierJustCreated_IdentifierUpdated() { // Arrange var user = TestHelper.GeorgeShazel; var loginResponse = await AuthClient.GetJwtToken(user.Username, "Start@123"); user.SetJwtEncodedString(loginResponse.Data.JwtAccessToken); UserContext.SetUser(user); var bpNumber = user.BPNumber.ToString(); var identifier = new BpIdentifier { AccountId = bpNumber, IdentifierType = IdentifierType.ZPASWD.ToString(), IdentifierNo = "Li0nOOjgfui" }; var password = GetIdentifierData(bpNumber, IdentifierType.ZPASWD); if (password != null) { McfClient.DeleteIdentifier(identifier); } McfClient.CreateIdentifier(identifier); // Act var response = McfClient.UpdateIdentifier(identifier); // Assert response.ShouldNotBeNull(); response.HttpStatusCode.ShouldBe(HttpStatusCode.Created); }
public async Task CreateIdentifier_IdentifierAlreadyExists_BadRequest() { // Arrange var user = TestHelper.ActivePaUser; var loginResponse = await AuthClient.GetJwtToken(user.Username, "Start@123"); user.SetJwtEncodedString(loginResponse.Data.JwtAccessToken); UserContext.SetUser(user); var bpNumber = user.BPNumber.ToString(); var startSocial = GetLast4Social(bpNumber); var identifier = new BpIdentifier { AccountId = bpNumber, IdentifierType = IdentifierType.ZLAST4.ToString(), IdentifierNo = startSocial }; // Act var response = McfClient.CreateIdentifier(identifier); // Assert response.ShouldNotBeNull(); response.Result.ShouldBeNull(); response.Error.Message.Value.ShouldContain("Already exists"); }
public async Task CreateIdentifier_NotAuthenticatedIdentifierDoesNotExist_IdentifierCreated() { // Arrange var user = TestHelper.GeorgeShazel; var loginResponse = await AuthClient.GetJwtToken(user.Username, "Start@123"); user.SetJwtEncodedString(loginResponse.Data.JwtAccessToken); UserContext.SetUser(user); var bpNumber = user.BPNumber.ToString(); var identifier = new BpIdentifier { AccountId = bpNumber, IdentifierType = IdentifierType.ZPASWD.ToString(), IdentifierNo = "zi1py786lOP" }; var password = GetIdentifierData(bpNumber, IdentifierType.ZPASWD); if (password != null) { McfClient.DeleteIdentifier(identifier); } // Next call should be unauthorized UserContext.JWT = null; // Act var response = McfClient.CreateIdentifier(identifier); // Assert response.ShouldNotBeNull(); response.Result.ShouldNotBeNull(); }
public async Task CreateIdentifier_IdentifierDoesNotExist_IdentifierCreated() { // Arrange var user = TestHelper.GeorgeShazel; var loginResponse = await AuthClient.GetJwtToken(user.Username, "Start@123"); user.SetJwtEncodedString(loginResponse.Data.JwtAccessToken); UserContext.SetUser(user); var bpNumber = user.BPNumber.ToString(); var identifier = new BpIdentifier { AccountId = bpNumber, IdentifierType = IdentifierType.ZPASWD.ToString(), IdentifierNo = "a4rFr3dKOPe" }; var password = GetIdentifierData(bpNumber, IdentifierType.ZPASWD); if (!string.IsNullOrEmpty(password)) { McfClient.DeleteIdentifier(identifier); } // Act var response = McfClient.CreateIdentifier(identifier); // Assert response.ShouldNotBeNull(); response.Result.ShouldNotBeNull(); response.Result.AccountId.ShouldBe(identifier.AccountId); response.Result.IdentifierType.ShouldBe(identifier.IdentifierType); response.Result.IdentifierNo.ShouldBe(identifier.IdentifierNo); }
/// <summary> /// Converts a BpIdentifier response to the corresponding model. /// </summary> /// <param name="source">The source.</param> /// <returns>The converted model object</returns> /// <exception cref="ArgumentNullException">source</exception> public static IdentifierResponse ToModel(this BpIdentifier source) { if (source == null) { throw new ArgumentNullException(nameof(source)); } var response = new IdentifierResponse { BpId = source.AccountId, IdentifierNo = source.IdentifierNo }; if (Enum.TryParse(source.IdentifierType, out IdentifierType idType)) { response.IdentifierType = idType; } if (DateTime.TryParse(source.IdEntryDate, out DateTime entryDate)) { response.IdEntryDate = entryDate; } return(response); }
/// <inheritdoc /> public Task <StatusCodeResponse> UpdateIdType(IdentifierRequest identifierRequest) { var bpIdentifier = new BpIdentifier(identifierRequest); var response = _mcfClient.UpdateIdentifier(bpIdentifier); if (response == null || response.Error != null) { const string uiFailureMessage = "Failed to update business partner identifier"; var responseErrorMessage = response?.Error != null?response.Error.ToJson() : uiFailureMessage; _logger.LogError($"{ responseErrorMessage }: {identifierRequest.ToJson()}"); throw new InternalServerException(uiFailureMessage); } return(Task.FromResult(response.ToModel())); }
public async Task UpdateIdentifier_AccountWithMissingIdentifier_ReturnsNoContent() { // Arrange var user = TestHelper.ActiveMaUser; var loginResponse = await AuthClient.GetJwtToken(user.Username, "Start@123"); user.SetJwtEncodedString(loginResponse.Data.JwtAccessToken); UserContext.SetUser(user); var bpNumber = user.BPNumber.ToString(); var identifier = new BpIdentifier { AccountId = bpNumber, IdentifierType = IdentifierType.ZDNAC.ToString(), IdentifierNo = "450930044" }; // Act var response = McfClient.UpdateIdentifier(identifier); // Assert response.ShouldNotBeNull(); response.HttpStatusCode.ShouldBe(HttpStatusCode.NoContent); }