public async Task <IActionResult> GetBeneficialInterestDetailByAssessmentId(int id)
 {
     return(new ObjectResult(await _beneificialInterestDetailBaseValueSegmentDomain.Get(id)));
 }
예제 #2
0
        public void GetBeneficialInterestDetailWithValidAssessmentEventId()
        {
            int      assessmentEventId     = 100;
            int      revenueObjectId       = 200;
            int      bvsId                 = 300;
            int      bvsTransId            = 310;
            int      bvsOwnerId            = 320;
            int      bvsValueHeaderId      = 330;
            int      bvsOwnerValueId       = 340;
            int      bvsValueId            = 350;
            int      transId               = 400;
            int      legalPartyRoleId      = 400;
            int      grmEventId            = 500;
            int      subComponentId        = 600;
            int      sequenceNumber        = 1;
            int      dynCalcStepTrackingId = -100;
            DateTime eventDate             = new DateTime(2016, 1, 1);
            DateTime effectiveDate         = new DateTime(2016, 2, 1);

            var baseValueSegmentCurrent = new BaseValueSegmentDto
            {
                AsOf = eventDate,
                AssessmentEventTransactionId        = 10,
                BaseValueSegmentAssessmentRevisions = new List <AssessmentRevisionBaseValueSegmentDto>(),
                BaseValueSegmentTransactions        = new List <BaseValueSegmentTransactionDto>
                {
                    new BaseValueSegmentTransactionDto
                    {
                        Id = bvsTransId,
                        BaseValueSegmentId = bvsId,
                        TransactionId      = transId,
                        EffectiveStatus    = "A",
                        BaseValueSegmentTransactionTypeId = 2,
                        DynCalcStepTrackingId             = dynCalcStepTrackingId,
                        BaseValueSegmentOwners            = new List <BaseValueSegmentOwnerDto>
                        {
                            new BaseValueSegmentOwnerDto
                            {
                                Id = bvsOwnerId,
                                BaseValueSegmentTransactionId = bvsTransId,
                                BeneficialInterestPercent     = 50,
                                DynCalcStepTrackingId         = dynCalcStepTrackingId,
                                GRMEventId       = grmEventId,
                                LegalPartyRoleId = legalPartyRoleId,
                                BaseValueSegmentOwnerValueValues = new List <BaseValueSegmentOwnerValueDto>
                                {
                                    new BaseValueSegmentOwnerValueDto
                                    {
                                        Id = bvsOwnerValueId,
                                        BaseValueSegmentOwnerId       = bvsOwnerId,
                                        BaseValueSegmentValueHeaderId = bvsValueHeaderId,
                                        BaseValue             = 10000,
                                        DynCalcStepTrackingId = dynCalcStepTrackingId
                                    }
                                }
                            },
                        },
                        BaseValueSegmentValueHeaders = new List <BaseValueSegmentValueHeaderDto>
                        {
                            new BaseValueSegmentValueHeaderDto
                            {
                                Id = bvsValueHeaderId,
                                BaseValueSegmentTransactionId = bvsTransId,
                                GRMEventId             = grmEventId,
                                BaseYear               = 2016,
                                BaseValueSegmentValues = new List <BaseValueSegmentValueDto>
                                {
                                    new BaseValueSegmentValueDto
                                    {
                                        Id = bvsValueId,
                                        BaseValueSegmentValueHeaderId = bvsValueHeaderId,
                                        DynCalcStepTrackingId         = dynCalcStepTrackingId,
                                        FullValueAmount = 100000,
                                        PercentComplete = 50,
                                        SubComponent    = subComponentId,
                                        ValueAmount     = 80000
                                    }
                                }
                            }
                        }
                    }
                },
                DynCalcInstanceId = -1,
                Id = bvsId,
                RevenueObjectId = revenueObjectId,
                SequenceNumber  = sequenceNumber,
                TransactionId   = -1000
            };

            var baseValueSegmentInfoList = new List <BaseValueSegmentInfoDto>
            {
                new BaseValueSegmentInfoDto
                {
                    AsOf            = eventDate,
                    Id              = bvsId,
                    RevenueObjectId = revenueObjectId,
                    SequenceNumber  = sequenceNumber
                }
            };

            var assessmentEvent = new AssessmentEventDto
            {
                Id        = assessmentEventId,
                EventDate = eventDate
            };

            var legalPartyRoleDocumentList = new List <LegalPartyDocumentDto>
            {
                new LegalPartyDocumentDto
                {
                    LegalPartyRoleId      = legalPartyRoleId,
                    DocDate               = effectiveDate,
                    DocNumber             = "UnitTestDocument",
                    DocType               = "Deed",
                    GrmEventId            = grmEventId,
                    LegalPartyDisplayName = "Unit Test Legal Party",
                    PctGain               = 50,
                    RightTransferId       = 0
                }
            };

            var ownerGrmEvents = new List <GrmEventInformationDto>
            {
                new GrmEventInformationDto
                {
                    GrmEventId      = grmEventId,
                    Description     = "UnitTestGrmEvent",
                    EventDate       = eventDate,
                    EffectiveDate   = effectiveDate,
                    RevenueObjectId = revenueObjectId,
                    EventType       = "Transfer"
                }
            };

            var marketRestrictedValues = new List <MarketAndRestrictedValueDto>
            {
                new MarketAndRestrictedValueDto
                {
                    SubComponent    = subComponentId,
                    MarketValue     = 100000,
                    RestrictedValue = 50000
                }
            };

            var subComponentDetailsList = new List <SubComponentDetailDto>
            {
                new SubComponentDetailDto
                {
                    SubComponentId = subComponentId,
                    Component      = "Unit Test Component",
                    SubComponent   = "Unit Test Subcomponent"
                }
            };

            var factorBaseYearValueDetail = new FactorBaseYearValueDetailDto
            {
                AssessmentYear = 2016,
                Fbyv           = 102000
            };

            _baseValueSegmentRepository.Setup(x => x.GetListAsync(revenueObjectId)).ReturnsAsync(baseValueSegmentInfoList);

            Tuple <BaseValueSegmentDto, BaseValueSegmentDto> resultSet = new Tuple <BaseValueSegmentDto, BaseValueSegmentDto>(baseValueSegmentCurrent, null);

            _baseValueSegmentProvider.Setup(x => x.GetCurrentAndPrevious(assessmentEventId)).ReturnsAsync(resultSet);

            _assessmentEventRepository.Setup(x => x.Get(assessmentEventId)).ReturnsAsync(assessmentEvent);

            _legalPartyDomain.Setup(x => x.GetLegalPartyRoleDocuments(It.IsAny <BaseValueSegmentDto>()))
            .ReturnsAsync(legalPartyRoleDocumentList.AsEnumerable);

            _grmEventDomain.Setup(x => x.GetOwnerGrmEvents(It.IsAny <BaseValueSegmentDto>()))
            .ReturnsAsync(ownerGrmEvents.AsEnumerable);

            _baseValueSegmentRepository.Setup(x => x.GetSubComponentDetails(It.IsAny <int>(), It.IsAny <DateTime>()))
            .ReturnsAsync(subComponentDetailsList.AsEnumerable);

            _baseValueSegmentRepository.Setup(x => x.GetFactorBaseYearValueDetail(It.IsAny <DateTime>(),
                                                                                  It.IsAny <int>(), It.IsAny <decimal>(), It.IsAny <int>())).ReturnsAsync(factorBaseYearValueDetail);

            var beneficalInterestDetail = _beneificialInterestDetailBaseValueSegmentDomain.Get(assessmentEventId).Result;

            beneficalInterestDetail.ShouldNotBeNull();
            beneficalInterestDetail.CurrentBaseValueSegment.ShouldNotBeNull();
            var bvsDetail = beneficalInterestDetail.CurrentBaseValueSegment;

            bvsDetail.ShouldNotBeNull();
            bvsDetail.BaseValueSegmentTransactionTypeDescription.ShouldBeNull();
            bvsDetail.EventDate.ShouldBe(eventDate);
            bvsDetail.EffectiveDate.ShouldBe(effectiveDate);
            bvsDetail.EventName.ShouldBe("UnitTestGrmEvent");
            bvsDetail.EventType.ShouldBe("Transfer");
            var details = bvsDetail.Details;

            details.Length.ShouldBeGreaterThan(0);
            var detail = details[0];

            detail.BaseValueSegmentEventDate.ShouldBe(effectiveDate);
            detail.BaseValueSegmentEventName.ShouldBe("UnitTestGrmEvent");
            detail.BaseValueSegmentEventType.ShouldBe("Transfer");
            detail.BaseYear.ShouldBe(2016);
            detail.BeneficialInterest.ShouldBe("Unit Test Legal Party");
            detail.BiPercentage.ShouldBe(50);
            detail.ComponentName.ShouldBe("Unit Test Component");
            detail.DocNumber.ShouldBe("UnitTestDocument");
            detail.DocType.ShouldBeNull();
            detail.OwnershipEventDate.ShouldBe(effectiveDate);
            detail.OwnershipEventName.ShouldBe("UnitTestGrmEvent");
            detail.OwnershipEventType.ShouldBe("Transfer");
            detail.PercentageInterestGain.ShouldBe(50);
            detail.SubComponentName.ShouldBe("Unit Test Subcomponent");
        }