public void WhenCreateAnIndividual_ThenVerifyIfHeIsABeneficiary()
        {
            //arrange
            var individual = new Individual();

            individual.BeneficiaryId = Guid.NewGuid();
            //individual.IndividualId = Guid.NewGuid();
            individual.IndividualBirthdate = new DateTime(2019, 05, 28, 7, 0, 0);
            individual.IndividualCPF       = "45301152897";
            individual.IndividualRG        = "458559462";
            individual.IndividualEmail     = "*****@*****.**";

            var beneficiary = new Individual();

            beneficiary.BeneficiaryId = new Guid("103660e3-5fd7-4606-bb1d-9d0f52e9c17a");
            //beneficiary.IndividualId = new Guid("184ac189-467f-4e3b-badc-b6c299a25bc0");
            beneficiary.IndividualBirthdate = new DateTime(2019, 05, 28, 7, 0, 0);
            beneficiary.IndividualCPF       = "45301152978";
            beneficiary.IndividualRG        = "458559463";
            beneficiary.IndividualEmail     = "*****@*****.**";

            //act
            var contract = new Contract();

            contract.ContractId         = Guid.NewGuid();
            contract.ContractType       = ContractType.HealthPlan;
            contract.ContractCategory   = ContractCategory.Diamond;
            contract.ContractExpiryDate = new DateTime(2019, 05, 28, 7, 0, 0);
            contract.ContractDeleted    = false;

            var signedContract = new SignedContract();

            signedContract.SignedContractId = Guid.NewGuid();
            //signedContract.IndividualId = individual.IndividualId;
            signedContract.ContractId = contract.ContractId;
            signedContract.SignedContractIndividual   = individual;
            signedContract.SignedContractContract     = contract;
            signedContract.ContractIndividualIsActive = true;

            var contractBeneficiary = new ContractBeneficiary();

            contractBeneficiary.ContractBeneficiaryId = Guid.NewGuid();
            contractBeneficiary.SignedContractId      = signedContract.SignedContractId;
            contractBeneficiary.BeneficiaryId         = beneficiary.BeneficiaryId;
            contractBeneficiary.SignedContract        = signedContract;
            contractBeneficiary.Beneficiary           = beneficiary;


            //assert
            Assert.AreEqual(beneficiary.BeneficiaryId, contractBeneficiary.BeneficiaryId);
            Assert.AreEqual(beneficiary, contractBeneficiary.Beneficiary);
        }
        public void WhenCreateAnIndividual_AndCreateAContractHolder_ThenVerifyIfHeIsAlsoABeneficiary()
        {
            //arange
            var individual = new Individual();

            individual.BeneficiaryId = Guid.NewGuid();
            //individual.IndividualId = Guid.NewGuid();
            individual.IndividualBirthdate = new DateTime(2019, 05, 28, 7, 0, 0);
            individual.IndividualCPF       = "45301152897";
            individual.IndividualRG        = "458559462";
            individual.IndividualEmail     = "*****@*****.**";

            //act
            var contract = new Contract();

            contract.ContractId         = Guid.NewGuid();
            contract.ContractType       = ContractType.HealthPlan;
            contract.ContractCategory   = ContractCategory.Diamond;
            contract.ContractExpiryDate = new DateTime(2019, 05, 28, 7, 0, 0);
            contract.ContractDeleted    = false;

            var signedContract = new SignedContract();

            signedContract.SignedContractId = Guid.NewGuid();
            //signedContract.IndividualId = individual.IndividualId;
            signedContract.ContractId = contract.ContractId;
            signedContract.SignedContractIndividual   = individual;
            signedContract.SignedContractContract     = contract;
            signedContract.ContractIndividualIsActive = true;

            var contractBeneficiary = new ContractBeneficiary();

            contractBeneficiary.ContractBeneficiaryId = Guid.NewGuid();
            contractBeneficiary.SignedContractId      = signedContract.SignedContractId;
            contractBeneficiary.BeneficiaryId         = individual.BeneficiaryId;
            contractBeneficiary.SignedContract        = signedContract;
            contractBeneficiary.Beneficiary           = individual;

            //assert
            Assert.AreEqual(individual.BeneficiaryId, contractBeneficiary.BeneficiaryId);
            Assert.AreEqual(individual, contractBeneficiary.Beneficiary);
        }
Пример #3
0
        private bool AddContractBeneficiaries(ContractViewModel viewModel, SignedContract signedContract)
        {
            var beneficiaries = AddBeneficiaries(viewModel);

            if (beneficiaries == null)
            {
                return(false);
            }

            foreach (var ben in beneficiaries)
            {
                var signedContracts = _db
                                      .SignedContracts
                                      .Where(sc => sc.SignedContractId == _db
                                             .Contract_Beneficiary
                                             .Where(cb => cb.BeneficiaryId == ben)
                                             .Select(cb => cb.SignedContractId).FirstOrDefault() &&
                                             sc.ContractIndividualIsActive)
                                      .ToList();

                foreach (var beneficiarySignedContract in signedContracts)
                {
                    if (_db.Contracts.Where(con => con.ContractId == beneficiarySignedContract.ContractId && con.ContractType == viewModel.Type).Any())
                    {
                        return(false);
                    }
                }

                var contract_beneficiary = new ContractBeneficiary()
                {
                    BeneficiaryId         = ben,
                    SignedContractId      = signedContract.SignedContractId,
                    ContractBeneficiaryId = Guid.NewGuid()
                };
                _db.Contract_Beneficiary.Add(contract_beneficiary);
            }
            return(true);
        }
        public void WhenCreateABeneficiary_ThenVerifyIfICanReadHisProperties()
        {
            //arrange
            var beneficiaryId       = new Guid("103660e3-5fd7-4606-bb1d-9d0f52e9c17a");
            var individualId        = new Guid("184ac189-467f-4e3b-badc-b6c299a25bc0");
            var individualBirthdate = new DateTime(2019, 05, 28, 7, 0, 0);
            var individualCPF       = "45301152897";
            var individualRG        = "458559462";
            var individualEmail     = "*****@*****.**";
            var individualDeleted   = false;

            var newAddress = new Address();

            newAddress.AddressId           = new Guid("029ec5eb-a126-45e4-981c-2db4e380c9eb");
            newAddress.AddressStreet       = "Rua Sales Fonseca";
            newAddress.AddressNumber       = "50";
            newAddress.AddressComplement   = "N/A";
            newAddress.AddressNeighborhood = "Jardim Santo Amaro";
            newAddress.AddressCity         = "Sorocaba";
            newAddress.AddressState        = "São Paulo";
            newAddress.AddressCountry      = "Brasil";
            newAddress.AddressZipCode      = "18011236";
            newAddress.AddressType         = AddressType.Commercial;

            var realtyId                    = new Guid("8e52b1c0-7eec-492d-b16a-dc35dca134c2");
            var realtyBeneficiaryId         = new Guid("080eef5c-6d09-441b-af39-5802d9201701");
            var realtyAddress               = newAddress;
            var realtyMunicipalRegistration = "abc68dfr98721dxe1";
            var realtyConstructionDate      = new DateTime(2019, 05, 15, 7, 0, 0);
            var realtySaleValue             = 800000.00;
            var realtyMarketValue           = 1000000.00;

            var mobileDeviceId                = new Guid("7922815c-de08-4423-b973-a62f97e97586");
            var mobileDeviceBeneficiaryId     = new Guid("98d052e2-10bf-4d26-8aa2-39c1e72800ea");
            var mobileDeviceBrand             = "Motorola";
            var mobileDeviceModel             = "Moto G3";
            var mobileDeviceSerialNumber      = "513475984000749";
            var mobileDeviceManufactoringYear = new DateTime(2019);
            var mobileDeviceType              = MobileDeviceType.Smartphone;
            var mobileDeviceInvoiceValue      = 800.00;

            var petId            = new Guid("b54b58d4-1199-4b85-aeb2-3165b561e418");
            var petBeneficiaryId = new Guid("0ed6cf6e-c95a-4635-8d47-a751d2b8953d");
            var petName          = "Robson";
            var petSpecies       = PetSpecies.Canis_lupus_familiaris;
            var petBreed         = "Pitbull";
            var petBirthdate     = new DateTime(2016, 02, 28);

            var vehicleId                = new Guid("7b0f59cb-310b-43ef-a73a-e4ce09e9ca4d");
            var vehicleBeneficiaryId     = new Guid("694d2c31-78e0-4d9e-b952-4042ebf7f59d");
            var vehicleBrand             = "Chevrolet";
            var vehicleModel             = "Celta";
            var vehicleManufactoringYear = new DateTime(2006);
            var vehicleColor             = Color.White;
            var vehicleModelYear         = new DateTime(2005);
            var vehicleChassisNumber     = "2T2BK1BA8FC259487";
            var vehicleCurrentMileage    = 100000;
            var vehicleCurrentFipeValue  = 25000;
            var vehicleDoneInspection    = true;

            //act
            var individual = new Individual();

            individual.BeneficiaryId = Guid.NewGuid();
            //individual.IndividualId = Guid.NewGuid();
            individual.IndividualBirthdate = new DateTime();
            individual.IndividualCPF       = "45301152897";
            individual.IndividualRG        = "458559462";
            individual.IndividualEmail     = "*****@*****.**";

            var beneficiary = new Individual();

            beneficiary.BeneficiaryId = new Guid("103660e3-5fd7-4606-bb1d-9d0f52e9c17a");
            //beneficiary.IndividualId = new Guid("184ac189-467f-4e3b-badc-b6c299a25bc0");
            beneficiary.IndividualBirthdate = new DateTime(2019, 05, 28, 7, 0, 0);
            beneficiary.IndividualCPF       = "45301152897";
            beneficiary.IndividualRG        = "458559462";
            beneficiary.IndividualEmail     = "*****@*****.**";

            var address = new Address();

            address.AddressId           = new Guid("029ec5eb-a126-45e4-981c-2db4e380c9eb");
            address.AddressStreet       = "Rua Sales Fonseca";
            address.AddressNumber       = "50";
            address.AddressComplement   = "N/A";
            address.AddressNeighborhood = "Jardim Santo Amaro";
            address.AddressCity         = "Sorocaba";
            address.AddressState        = "São Paulo";
            address.AddressCountry      = "Brasil";
            address.AddressZipCode      = "18011236";
            address.AddressType         = AddressType.Commercial;

            var realty = new Realty();

            //realty.RealtyId = new Guid("8e52b1c0-7eec-492d-b16a-dc35dca134c2");
            realty.BeneficiaryId = new Guid("080eef5c-6d09-441b-af39-5802d9201701");
            //realty.RealtyAddress = address;
            realty.RealtyMunicipalRegistration = "abc68dfr98721dxe1";
            realty.RealtyConstructionDate      = new DateTime(2019, 05, 15, 7, 0, 0);
            realty.RealtySaleValue             = 800000.00;
            realty.RealtyMarketValue           = 1000000.00;

            var mobileDevice = new MobileDevice();

            //mobileDevice.MobileDeviceId = new Guid("7922815c-de08-4423-b973-a62f97e97586");
            mobileDevice.BeneficiaryId                 = new Guid("98d052e2-10bf-4d26-8aa2-39c1e72800ea");
            mobileDevice.MobileDeviceBrand             = "Motorola";
            mobileDevice.MobileDeviceModel             = "Moto G3";
            mobileDevice.MobileDeviceSerialNumber      = "513475984000749";
            mobileDevice.MobileDeviceManufactoringYear = new DateTime(2019);
            mobileDevice.MobileDeviceType              = MobileDeviceType.Smartphone;
            mobileDevice.MobileDeviceInvoiceValue      = 800.00;

            var pet = new Pet();

            //pet.PetId = new Guid("b54b58d4-1199-4b85-aeb2-3165b561e418");
            pet.BeneficiaryId = new Guid("0ed6cf6e-c95a-4635-8d47-a751d2b8953d");
            pet.PetName       = "Robson";
            pet.PetSpecies    = PetSpecies.Canis_lupus_familiaris;
            pet.PetBreed      = "Pitbull";
            pet.PetBirthdate  = new DateTime(2016, 02, 28);

            var vehicle = new Vehicle();

            //vehicle.VehicleId = new Guid("7b0f59cb-310b-43ef-a73a-e4ce09e9ca4d");
            vehicle.BeneficiaryId            = new Guid("694d2c31-78e0-4d9e-b952-4042ebf7f59d");
            vehicle.VehicleBrand             = "Chevrolet";
            vehicle.VehicleModel             = "Celta";
            vehicle.VehicleManufactoringYear = new DateTime(2006);
            vehicle.VehicleColor             = Color.White;
            vehicle.VehicleModelYear         = new DateTime(2005);
            vehicle.VehicleChassisNumber     = "2T2BK1BA8FC259487";
            vehicle.VehicleCurrentMileage    = 100000;
            vehicle.VehicleCurrentFipeValue  = 25000;
            vehicle.VehicleDoneInspection    = true;

            var contract = new Contract();

            contract.ContractId         = Guid.NewGuid();
            contract.ContractType       = ContractType.HealthPlan;
            contract.ContractCategory   = ContractCategory.Diamond;
            contract.ContractExpiryDate = new DateTime(2019, 05, 28, 7, 0, 0);
            contract.ContractDeleted    = false;

            var signedContract = new SignedContract();

            signedContract.SignedContractId = Guid.NewGuid();
            //signedContract.IndividualId = individual.IndividualId;
            signedContract.ContractId = contract.ContractId;
            signedContract.SignedContractIndividual   = individual;
            signedContract.SignedContractContract     = contract;
            signedContract.ContractIndividualIsActive = true;

            var contractBeneficiary = new ContractBeneficiary();

            contractBeneficiary.ContractBeneficiaryId = Guid.NewGuid();
            contractBeneficiary.SignedContractId      = signedContract.SignedContractId;
            contractBeneficiary.BeneficiaryId         = individual.BeneficiaryId;
            contractBeneficiary.SignedContract        = signedContract;
            contractBeneficiary.Beneficiary           = individual;

            //assert
            //Assert.AreEqual(beneficiary.IndividualId, individualId);
            Assert.AreEqual(beneficiary.BeneficiaryId, beneficiaryId);
            Assert.AreEqual(beneficiary.IndividualBirthdate, individualBirthdate);
            Assert.AreEqual(beneficiary.IndividualCPF, individualCPF);
            Assert.AreEqual(beneficiary.IndividualRG, individualRG);
            Assert.AreEqual(beneficiary.IndividualEmail, individualEmail);

            //Assert.AreEqual(realty.RealtyId, realtyId);
            Assert.AreEqual(realty.BeneficiaryId, realtyBeneficiaryId);
            //Assert.AreEqual(realty.RealtyAddress, realtyAddress);
            Assert.AreEqual(realty.RealtyMunicipalRegistration, realtyMunicipalRegistration);
            Assert.AreEqual(realty.RealtyConstructionDate, realtyConstructionDate);
            Assert.AreEqual(realty.RealtySaleValue, realtySaleValue);
            Assert.AreEqual(realty.RealtyMarketValue, realtyMarketValue);

            //Assert.AreEqual(mobileDevice.MobileDeviceId, mobileDeviceId);
            Assert.AreEqual(mobileDevice.BeneficiaryId, mobileDeviceBeneficiaryId);
            Assert.AreEqual(mobileDevice.MobileDeviceBrand, mobileDeviceBrand);
            Assert.AreEqual(mobileDevice.MobileDeviceModel, mobileDeviceModel);
            Assert.AreEqual(mobileDevice.MobileDeviceSerialNumber, mobileDeviceSerialNumber);
            Assert.AreEqual(mobileDevice.MobileDeviceManufactoringYear, mobileDeviceManufactoringYear);
            Assert.AreEqual(mobileDevice.MobileDeviceType, mobileDeviceType);
            Assert.AreEqual(mobileDevice.MobileDeviceInvoiceValue, mobileDeviceInvoiceValue);

            //Assert.AreEqual(pet.PetId, petId);
            Assert.AreEqual(pet.BeneficiaryId, petBeneficiaryId);
            Assert.AreEqual(pet.PetName, petName);
            Assert.AreEqual(pet.PetSpecies, petSpecies);
            Assert.AreEqual(pet.PetBreed, petBreed);
            Assert.AreEqual(pet.PetBirthdate, petBirthdate);

            //Assert.AreEqual(vehicle.VehicleId, vehicleId);
            Assert.AreEqual(vehicle.BeneficiaryId, vehicleBeneficiaryId);
            Assert.AreEqual(vehicle.VehicleBrand, vehicleBrand);
            Assert.AreEqual(vehicle.VehicleModel, vehicleModel);
            Assert.AreEqual(vehicle.VehicleManufactoringYear, vehicleManufactoringYear);
            Assert.AreEqual(vehicle.VehicleColor, vehicleColor);
            Assert.AreEqual(vehicle.VehicleModelYear, vehicleModelYear);
            Assert.AreEqual(vehicle.VehicleChassisNumber, vehicleChassisNumber);
            Assert.AreEqual(vehicle.VehicleCurrentMileage, vehicleCurrentMileage);
            Assert.AreEqual(vehicle.VehicleCurrentFipeValue, vehicleCurrentFipeValue);
            Assert.AreEqual(vehicle.VehicleDoneInspection, vehicleDoneInspection);
        }
Пример #5
0
        private bool UpdateBeneficiaries(ContractViewModel viewModel, Guid signedContractId)
        {
            var beneficiaries = new List <Guid>();

            switch (viewModel.Type)
            {
            case Core.Enums.ContractType.DentalPlan:
            case Core.Enums.ContractType.HealthPlan:
            case Core.Enums.ContractType.LifeInsurance:
                beneficiaries = _db.Individuals
                                .Where(ind => viewModel.BeneficiariesIds.Contains(ind.BeneficiaryId))
                                .Select(ind => ind.BeneficiaryId)
                                .ToList();
                break;

            case Core.Enums.ContractType.AnimalHealthPlan:
                beneficiaries = _db.Pets
                                .Where(pet => viewModel.BeneficiariesIds.Contains(pet.BeneficiaryId))
                                .Select(pet => pet.BeneficiaryId)
                                .ToList();
                break;

            case Core.Enums.ContractType.MobileDeviceInsurance:
                beneficiaries = _db.MobileDevices
                                .Where(mob => viewModel.BeneficiariesIds.Contains(mob.BeneficiaryId))
                                .Select(mob => mob.BeneficiaryId)
                                .ToList();
                break;

            case Core.Enums.ContractType.RealStateInsurance:
                beneficiaries = _db.Realties
                                .Where(rea => viewModel.BeneficiariesIds.Contains(rea.BeneficiaryId))
                                .Select(rea => rea.BeneficiaryId)
                                .ToList();
                break;

            case Core.Enums.ContractType.VehicleInsurance:
                beneficiaries = _db.Vehicles
                                .Where(vec => viewModel.BeneficiariesIds.Contains(vec.BeneficiaryId))
                                .Select(vec => vec.BeneficiaryId)
                                .ToList();
                break;

            default:
                return(false);
            }
            if (beneficiaries.Count == 0 || beneficiaries.Count != viewModel.BeneficiariesIds.Count)
            {
                return(false);
            }

            foreach (var ben in beneficiaries)
            {
                var signedContracts = _db
                                      .SignedContracts
                                      .Where(sc => sc.SignedContractId == _db
                                             .Contract_Beneficiary
                                             .Where(cb => cb.BeneficiaryId == ben)
                                             .Select(cb => cb.SignedContractId).FirstOrDefault() &&
                                             sc.ContractIndividualIsActive)
                                      .ToList();

                foreach (var beneficiarySignedContract in signedContracts)
                {
                    if (_db.Contracts.Where(con => con.ContractId == beneficiarySignedContract.ContractId && con.ContractType == viewModel.Type).Any())
                    {
                        return(false);
                    }
                }

                var contract_beneficiary = new ContractBeneficiary()
                {
                    BeneficiaryId         = ben,
                    SignedContractId      = signedContractId,
                    ContractBeneficiaryId = Guid.NewGuid()
                };
                _db.Contract_Beneficiary.Add(contract_beneficiary);
            }
            return(true);
        }