public void BpSearch_ExistingBP_Returns200Ok()
        {
            // Arrange
            var controller = GetController();
            var request    = new BpSearchRequest()
            {
                FirstName = "Feng",
                LastName  = "Chan"
            };
            var responseForExistingBp = new BpSearchModel()
            {
                MatchFound          = true,
                BpId                = 1234567,
                Reason              = "Valid match.",
                ReasonCode          = "match",
                BpSearchIdentifiers = new List <IdentifierModel>()
                {
                    new IdentifierModel()
                    {
                        IdentifierType  = IdentifierType.ZDOB,
                        IdentifierValue = "01/01/1975"
                    }
                }
            };

            MoveInLogicMock.Setup(m => m.GetDuplicateBusinessPartnerIfExists(It.IsAny <BpSearchRequest>()))
            .ReturnsAsync(responseForExistingBp);

            // Act
            var response = controller.BpSearch(request).Result;

            // Assert
            response.ShouldBeOfType <OkObjectResult>();
        }
        public void GetInvalidMoveinDates_Valid_Request_Returns_Valid_Response()
        {
            // Arrange
            var dateList = new List <DateTimeOffset>();

            for (int i = 0; i < 5; i++)
            {
                dateList.Add(DateTime.Now.AddDays(i));
            }

            MoveInLogicMock.Setup(m => m.GetInvalidMoveinDates(It.IsAny <GetInvalidMoveinDatesRequest>())).Returns(dateList);
            var controller = GetController();

            var request = new GetInvalidMoveinDatesRequest
            {
                DateFrom = DateTime.Now,
                DateTo   = DateTime.Now.AddMonths(3),
            };

            // Act
            var response = controller.GetInvalidMoveinDates(request);

            // Assert
            var result = ((OkObjectResult)response.Result).Value as GetInvalidMoveinDatesResponse;

            result.ShouldNotBeNull();
            result.InvalidMoveinDates.ShouldNotBeNull();
            result.InvalidMoveinDates.Count.ShouldBe(5);
        }
        public void GetIdType_ValidAccount_TenantBpId_ReturnsValue()
        {
            // Arrange
            var user = TestHelper.PaDev1;

            MoveInLogicMock.
            Setup(x => x.GetIdType(It.IsAny <long>(), It.IsAny <IdentifierType>())).
            Returns(Task.FromResult(new List <IdentifierTypeResponse>
            {
                new IdentifierTypeResponse
                {
                    IdentifierType = IdentifierType.ZDOB
                }
            }));
            var controller = GetController();

            ArrangeController(controller, user);

            // Act
            var response = controller.GetIdType(IdentifierType.ZDOB, 1002287692);

            // Assert
            var result     = (OkObjectResult)response.Result;
            var idResponse = (GetBpIdTypeResponse)result.Value;

            idResponse.Identifiers.Count.ShouldBe(1);
        }
        public void ValidateType_InvalidAccountAndType_FalseReturned()
        {
            // Arrange
            var user = TestHelper.PaDev1;

            MoveInLogicMock.
            Setup(x => x.ValidateIdType(It.IsAny <IdentifierRequest>())).
            Returns(Task.FromResult(false));
            var controller = GetController();
            var identifier = new IdentifierRequest
            {
                BpId           = user.BpNumber.ToString(),
                IdentifierType = IdentifierType.ZLAST4,
                IdentifierNo   = "1234"
            };

            // Act
            var response = controller.ValidateIdType(identifier);

            // Assert
            response.Result.ShouldBeOfType(typeof(OkObjectResult));
            var result = (ValidateIdTypeResponse)((OkObjectResult)response.Result).Value;

            result.ShouldNotBeNull();
            result.PiiMatch.ShouldBeFalse();
        }
        public void GetAllIdTypes_ValidAccount_ReturnsValues()
        {
            // Arrange
            var user = TestHelper.PaDev1;

            MoveInLogicMock.
            Setup(x => x.GetAllIdTypes(It.IsAny <long>())).
            Returns(Task.FromResult(new List <IdentifierTypeResponse>
            {
                new IdentifierTypeResponse
                {
                    IdentifierType = IdentifierType.ZLAST4
                },
                new IdentifierTypeResponse
                {
                    IdentifierType = IdentifierType.ZDOB
                }
            }));
            var controller = GetController();

            ArrangeController(controller, user);

            // Act
            var response = controller.GetAllIdTypes(null);

            // Assert
            var result     = (OkObjectResult)response.Result;
            var idResponse = (GetBpIdTypeResponse)result.Value;

            idResponse.Identifiers.Count.ShouldBe(2);
            idResponse.Identifiers[0].IdentifierType.ShouldBe(IdentifierType.ZLAST4);
            idResponse.Identifiers[1].IdentifierType.ShouldBe(IdentifierType.ZDOB);
        }