Example #1
0
        /// <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));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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");
        }
Example #5
0
        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();
        }
Example #6
0
        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);
        }
Example #8
0
        /// <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()));
        }
Example #9
0
        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);
        }