public async Task exception_should_be_caught_correctly() { Guid invalidRequestId = Guid.NewGuid(); SSG_SearchRequest invalidSearchRequest = new SSG_SearchRequest { SearchRequestId = invalidRequestId }; Person exceptionPerson = new Person() { Identifiers = new List <PersonalIdentifier>() { new PersonalIdentifier() { Value = "exceptionID" } }, Addresses = new List <Address>() { new Address() { AddressLine1 = "AddressLine1", } }, Phones = new List <Phone>() { new Phone() { PhoneNumber = "4005678900" } }, Names = new List <Name>() { new Name() { FirstName = "firstName" } }, RelatedPersons = new List <RelatedPerson>() { new RelatedPerson() { FirstName = "firstName" } }, }; _searchRequestServiceMock.Setup(x => x.CreateIdentifier(It.Is <IdentifierEntity>(x => x.SearchRequest.SearchRequestId == invalidRequestId), It.IsAny <CancellationToken>())) .Throws(new Exception("identifier random exception")); _searchRequestServiceMock.Setup(x => x.CreateAddress(It.Is <AddressEntity>(x => x.SearchRequest.SearchRequestId == invalidRequestId), It.IsAny <CancellationToken>())) .Throws(new Exception("address random exception")); _searchRequestServiceMock.Setup(x => x.CreatePhoneNumber(It.Is <PhoneNumberEntity>(x => x.SearchRequest.SearchRequestId == invalidRequestId), It.IsAny <CancellationToken>())) .Throws(new Exception("phone random exception")); _searchRequestServiceMock.Setup(x => x.CreateName(It.Is <AliasEntity>(x => x.SearchRequest.SearchRequestId == invalidRequestId), It.IsAny <CancellationToken>())) .Throws(new Exception("name random exception")); _searchRequestServiceMock.Setup(x => x.CreateRelatedPerson(It.Is <RelatedPersonEntity>(x => x.SearchRequest.SearchRequestId == invalidRequestId), It.IsAny <CancellationToken>())) .Throws(new Exception("relatedPerson random exception")); var result = await _sut.ProcessPersonFound(exceptionPerson, _providerProfile, invalidSearchRequest, Guid.NewGuid(), _fakeToken); _searchRequestServiceMock .Verify(x => x.SavePerson(It.IsAny <PersonEntity>(), It.IsAny <CancellationToken>()), Times.Once); _searchRequestServiceMock .Verify(x => x.CreateIdentifier(It.IsAny <IdentifierEntity>(), It.IsAny <CancellationToken>()), Times.Once); _loggerMock.VerifyLog(LogLevel.Error, "identifier random exception", Times.Once()); _loggerMock.VerifyLog(LogLevel.Error, "address random exception", Times.Once()); _loggerMock.VerifyLog(LogLevel.Error, "phone random exception", Times.Once()); _loggerMock.VerifyLog(LogLevel.Error, "name random exception", Times.Once()); _loggerMock.VerifyLog(LogLevel.Error, "relatedPerson random exception", Times.Once()); Assert.AreEqual(true, result); }
public void Init() { _loggerMock = new Mock <ILogger <SearchResultService> >(); _searchRequestServiceMock = new Mock <ISearchRequestService>(); _mapper = new Mock <IMapper>(); var validRequestId = Guid.NewGuid(); var invalidRequestId = Guid.NewGuid(); var validVehicleId = Guid.NewGuid(); var validOtherAssetId = Guid.NewGuid(); _fakePersoneIdentifier = new SSG_Identifier { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonAddress = new SSG_Address { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeEmployment = new EmploymentEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeEmploymentContact = new SSG_EmploymentContact { PhoneNumber = "11111111" }; _fakePersonPhoneNumber = new SSG_PhoneNumber { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeRelatedPerson = new SSG_Identity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeName = new SSG_Aliase { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _ssg_fakePerson = new PersonEntity { }; _searchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId }; _fakeBankInfo = new SSG_Asset_BankingInformation { BankName = "bank" }; _fakeVehicleEntity = new VehicleEntity { SearchRequest = _searchRequest, PlateNumber = "AAA.BBB" }; _fakeAssetOwner = new SSG_AssetOwner() { OrganizationName = "Ford Inc." }; _fakeOtherAsset = new AssetOtherEntity() { SearchRequest = _searchRequest, TypeDescription = "type description" }; _fakePerson = new Person() { DateOfBirth = DateTime.Now, FirstName = "TEST1", LastName = "TEST2", Identifiers = new List <PersonalIdentifier>() { new PersonalIdentifier() { Value = "test", IssuedBy = "test", Type = PersonalIdentifierType.BCDriverLicense } }, Addresses = new List <Address>() { new Address() { AddressLine1 = "AddressLine1", AddressLine2 = "AddressLine2", AddressLine3 = "AddressLine3", StateProvince = "Manitoba", City = "testCity", Type = "residence", CountryRegion = "canada", ZipPostalCode = "p3p3p3", ReferenceDates = new List <ReferenceDate>() { new ReferenceDate() { Index = 0, Key = "Start Date", Value = new DateTime(2019, 9, 1) }, new ReferenceDate() { Index = 1, Key = "End Date", Value = new DateTime(2020, 9, 1) } }, Description = "description" } }, Phones = new List <Phone>() { new Phone() { PhoneNumber = "4005678900" } }, Names = new List <Name>() { new Name() { FirstName = "firstName" } }, RelatedPersons = new List <RelatedPerson>() { new RelatedPerson() { FirstName = "firstName" } }, Employments = new List <Employment>() { new Employment() { Occupation = "Occupation", Employer = new Employer() { Phones = new List <Phone>() { new Phone() { PhoneNumber = "1111111", Type = "Phone" } } } } }, BankInfos = new List <BankInfo>() { new BankInfo() { BankName = "BankName", } }, Vehicles = new List <Vehicle>() { new Vehicle() { }, new Vehicle() { Owners = new List <AssetOwner>() { new AssetOwner() { } } } }, OtherAssets = new List <OtherAsset>() { new OtherAsset() { Owners = new List <AssetOwner>() { new AssetOwner() { } } } } }; _providerProfile = new ProviderProfile() { Name = "Other" }; _fakeToken = new CancellationToken(); _mapper.Setup(m => m.Map <SSG_Identifier>(It.IsAny <PersonalIdentifier>())) .Returns(_fakePersoneIdentifier); _mapper.Setup(m => m.Map <SSG_PhoneNumber>(It.IsAny <Phone>())) .Returns(_fakePersonPhoneNumber); _mapper.Setup(m => m.Map <SSG_Address>(It.IsAny <Address>())) .Returns(_fakePersonAddress); _mapper.Setup(m => m.Map <SSG_Aliase>(It.IsAny <Name>())) .Returns(_fakeName); _mapper.Setup(m => m.Map <PersonEntity>(It.IsAny <Person>())) .Returns(_ssg_fakePerson); _mapper.Setup(m => m.Map <EmploymentEntity>(It.IsAny <Employment>())) .Returns(_fakeEmployment); _mapper.Setup(m => m.Map <SSG_EmploymentContact>(It.IsAny <Phone>())) .Returns(_fakeEmploymentContact); _mapper.Setup(m => m.Map <SSG_Identity>(It.IsAny <RelatedPerson>())) .Returns(_fakeRelatedPerson); _mapper.Setup(m => m.Map <SSG_Asset_BankingInformation>(It.IsAny <BankInfo>())) .Returns(_fakeBankInfo); _mapper.Setup(m => m.Map <VehicleEntity>(It.IsAny <Vehicle>())) .Returns(_fakeVehicleEntity); _mapper.Setup(m => m.Map <SSG_AssetOwner>(It.IsAny <AssetOwner>())) .Returns(_fakeAssetOwner); _mapper.Setup(m => m.Map <AssetOtherEntity>(It.IsAny <OtherAsset>())) .Returns(_fakeOtherAsset); _searchRequestServiceMock.Setup(x => x.CreateIdentifier(It.Is <SSG_Identifier>(x => x.SearchRequest.SearchRequestId == invalidRequestId), It.IsAny <CancellationToken>())) .Throws(new Exception("random exception")); _searchRequestServiceMock.Setup(x => x.CreateAddress(It.Is <SSG_Address>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Address>(new SSG_Address() { AddressLine1 = "test full line" })); _searchRequestServiceMock.Setup(x => x.CreatePhoneNumber(It.Is <SSG_PhoneNumber>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_PhoneNumber>(new SSG_PhoneNumber() { TelePhoneNumber = "4007678231" })); _searchRequestServiceMock.Setup(x => x.CreateName(It.Is <SSG_Aliase>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Aliase>(new SSG_Aliase() { FirstName = "firstName" })); _searchRequestServiceMock.Setup(x => x.SavePerson(It.Is <PersonEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Person>(new SSG_Person() { FirstName = "First" })); _searchRequestServiceMock.Setup(x => x.CreateEmployment(It.Is <EmploymentEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Employment>(new SSG_Employment() { EmploymentId = Guid.NewGuid(), Occupation = "Occupation" })); _searchRequestServiceMock.Setup(x => x.CreateEmploymentContact(It.IsAny <SSG_EmploymentContact>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_EmploymentContact>(new SSG_EmploymentContact() { PhoneNumber = "4007678231" })); _searchRequestServiceMock.Setup(x => x.CreateRelatedPerson(It.Is <SSG_Identity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Identity>(new SSG_Identity() { FirstName = "firstName" })); _searchRequestServiceMock.Setup(x => x.CreateBankInfo(It.Is <SSG_Asset_BankingInformation>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_BankingInformation>(new SSG_Asset_BankingInformation() { BankName = "bankName" })); _searchRequestServiceMock.Setup(x => x.CreateVehicle(It.Is <VehicleEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_Vehicle>(new SSG_Asset_Vehicle() { VehicleId = validVehicleId })); _searchRequestServiceMock.Setup(x => x.CreateAssetOwner(It.Is <SSG_AssetOwner>(x => x.Vehicle.VehicleId == validVehicleId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_AssetOwner>(new SSG_AssetOwner() { Type = "Owner" })); _searchRequestServiceMock.Setup(x => x.CreateOtherAsset(It.Is <AssetOtherEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_Other>(new SSG_Asset_Other() { AssetOtherId = validOtherAssetId })); _sut = new SearchResultService(_searchRequestServiceMock.Object, _loggerMock.Object, _mapper.Object); }
public void Init() { _loggerMock = new Mock <ILogger <SearchResultService> >(); _searchRequestServiceMock = new Mock <ISearchRequestService>(); _mapper = new Mock <IMapper>(); var validRequestId = Guid.NewGuid(); var validVehicleId = Guid.NewGuid(); var validOtherAssetId = Guid.NewGuid(); var validBankInformationId = Guid.NewGuid(); var validEmploymentId = Guid.NewGuid(); _fakePersoneIdentifier = new IdentifierEntity { Identification = "1234567", SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeSourceIdentifier = new SSG_Identifier { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonAddress = new AddressEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId }, AddressLine1 = "addressLine1" }; _fakeEmployment = new EmploymentEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeEmploymentContact = new EmploymentContactEntity { PhoneNumber = "11111111" }; _fakePersonPhoneNumber = new PhoneNumberEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeRelatedPerson = new RelatedPersonEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeName = new AliasEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _ssg_fakePerson = new PersonEntity { }; _searchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId }; _fakeBankInfo = new BankingInformationEntity { BankName = "bank" }; _fakeVehicleEntity = new VehicleEntity { SearchRequest = _searchRequest, PlateNumber = "AAA.BBB" }; _fakeAssetOwner = new SSG_AssetOwner() { OrganizationName = "Ford Inc." }; _fakeOtherAsset = new AssetOtherEntity() { SearchRequest = _searchRequest, TypeDescription = "type description" }; _fakeWorkSafeBcClaim = new CompensationClaimEntity() { SearchRequest = _searchRequest, ClaimNumber = "claimNumber", BankingInformation = new SSG_Asset_BankingInformation() { BankingInformationId = validBankInformationId }, Employment = new SSG_Employment() { EmploymentId = validEmploymentId } }; _fakeCompensationEmployment = new EmploymentEntity() { BusinessName = COMPENSATION_BUISNESS_NAME }; _fakeIcbcClaim = new ICBCClaimEntity() { ClaimNumber = "icbcClaimNumber" }; _fakeInvolvedParty = new SSG_InvolvedParty() { OrganizationName = "name" }; _fakeSimplePhone = new SSG_SimplePhoneNumber() { PhoneNumber = "0" }; _fakePerson = new Person() { DateOfBirth = DateTime.Now, FirstName = "TEST1", LastName = "TEST2", Identifiers = new List <PersonalIdentifier>() { new PersonalIdentifier() { Value = "test", IssuedBy = "test", Type = PersonalIdentifierType.BCDriverLicense } }, Addresses = new List <Address>() { new Address() { AddressLine1 = "AddressLine1", AddressLine2 = "AddressLine2", AddressLine3 = "AddressLine3", StateProvince = "Manitoba", City = "testCity", Type = "residence", CountryRegion = "canada", ZipPostalCode = "p3p3p3", ReferenceDates = new List <ReferenceDate>() { new ReferenceDate() { Index = 0, Key = "Start Date", Value = new DateTime(2019, 9, 1) }, new ReferenceDate() { Index = 1, Key = "End Date", Value = new DateTime(2020, 9, 1) } }, Description = "description" } }, Phones = new List <Phone>() { new Phone() { PhoneNumber = "4005678900" } }, Names = new List <Name>() { new Name() { FirstName = "firstName" } }, RelatedPersons = new List <RelatedPerson>() { new RelatedPerson() { FirstName = "firstName" } }, Employments = new List <Employment>() { new Employment() { Occupation = "Occupation", Employer = new Employer() { Phones = new List <Phone>() { new Phone() { PhoneNumber = "1111111", Type = "Phone" } } } } }, BankInfos = new List <BankInfo>() { new BankInfo() { BankName = "BankName", } }, Vehicles = new List <Vehicle>() { new Vehicle() { }, new Vehicle() { Owners = new List <InvolvedParty>() { new InvolvedParty() { } } } }, OtherAssets = new List <OtherAsset>() { new OtherAsset() { Owners = new List <InvolvedParty>() { new InvolvedParty() { } } } }, CompensationClaims = new List <CompensationClaim>() { new CompensationClaim() { ClaimNumber = "claimNumber", BankInfo = new BankInfo() { BankName = "compensationBankName" }, Employer = new Employer() { Name = COMPENSATION_BUISNESS_NAME }, ReferenceDates = new ReferenceDate[] { new ReferenceDate() { Index = 0, Key = "Start Date", Value = new DateTime(2019, 9, 1) } } } }, InsuranceClaims = new List <InsuranceClaim>() { new InsuranceClaim() { ClaimNumber = "icbcClaimNumber", InsuredParties = new List <InvolvedParty>() { new InvolvedParty() { Organization = "insuranceClaimOrg" } }, ClaimCentre = new ClaimCentre() { ContactNumber = new List <Phone>() { new Phone() { PhoneNumber = "9999" } } } } } }; _providerProfile = new ProviderProfile() { Name = "Other" }; _fakeToken = new CancellationToken(); _mapper.Setup(m => m.Map <IdentifierEntity>(It.IsAny <PersonalIdentifier>())) .Returns(_fakePersoneIdentifier); _mapper.Setup(m => m.Map <PhoneNumberEntity>(It.IsAny <Phone>())) .Returns(_fakePersonPhoneNumber); _mapper.Setup(m => m.Map <AddressEntity>(It.IsAny <Address>())) .Returns(_fakePersonAddress); _mapper.Setup(m => m.Map <AliasEntity>(It.IsAny <Name>())) .Returns(_fakeName); _mapper.Setup(m => m.Map <PersonEntity>(It.IsAny <Person>())) .Returns(_ssg_fakePerson); _mapper.Setup(m => m.Map <EmploymentEntity>(It.Is <Employer>(m => m.Name == COMPENSATION_BUISNESS_NAME))) .Returns(_fakeCompensationEmployment); _mapper.Setup(m => m.Map <EmploymentEntity>(It.IsAny <Employment>())) .Returns(_fakeEmployment); _mapper.Setup(m => m.Map <EmploymentContactEntity>(It.IsAny <Phone>())) .Returns(_fakeEmploymentContact); _mapper.Setup(m => m.Map <RelatedPersonEntity>(It.IsAny <RelatedPerson>())) .Returns(_fakeRelatedPerson); _mapper.Setup(m => m.Map <BankingInformationEntity>(It.IsAny <BankInfo>())) .Returns(_fakeBankInfo); _mapper.Setup(m => m.Map <VehicleEntity>(It.IsAny <Vehicle>())) .Returns(_fakeVehicleEntity); _mapper.Setup(m => m.Map <AssetOwnerEntity>(It.IsAny <InvolvedParty>())) .Returns(_fakeAssetOwner); _mapper.Setup(m => m.Map <AssetOtherEntity>(It.IsAny <OtherAsset>())) .Returns(_fakeOtherAsset); _mapper.Setup(m => m.Map <CompensationClaimEntity>(It.IsAny <CompensationClaim>())) .Returns(_fakeWorkSafeBcClaim); _mapper.Setup(m => m.Map <ICBCClaimEntity>(It.IsAny <InsuranceClaim>())) .Returns(_fakeIcbcClaim); _mapper.Setup(m => m.Map <InvolvedPartyEntity>(It.Is <InvolvedParty>(m => m.Organization == "insuranceClaimOrg"))) .Returns(_fakeInvolvedParty); _mapper.Setup(m => m.Map <SimplePhoneNumberEntity>(It.Is <Phone>(m => m.PhoneNumber == "9999"))) .Returns(_fakeSimplePhone); _searchRequestServiceMock.Setup(x => x.CreateIdentifier(It.IsAny <IdentifierEntity>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Identifier>(new SSG_Identifier() { })); _searchRequestServiceMock.Setup(x => x.CreateAddress(It.Is <AddressEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Address>(new SSG_Address() { AddressLine1 = "test full line" })); _searchRequestServiceMock.Setup(x => x.CreatePhoneNumber(It.Is <PhoneNumberEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_PhoneNumber>(new SSG_PhoneNumber() { TelePhoneNumber = "4007678231" })); _searchRequestServiceMock.Setup(x => x.CreateName(It.Is <AliasEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Aliase>(new SSG_Aliase() { FirstName = "firstName" })); _searchRequestServiceMock.Setup(x => x.SavePerson(It.Is <PersonEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Person>(new SSG_Person() { FirstName = "First" })); _searchRequestServiceMock.Setup(x => x.CreateEmployment(It.Is <EmploymentEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Employment>(new SSG_Employment() { EmploymentId = Guid.NewGuid(), Occupation = "Occupation" })); _searchRequestServiceMock.Setup(x => x.CreateEmploymentContact(It.IsAny <EmploymentContactEntity>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_EmploymentContact>(new SSG_EmploymentContact() { PhoneNumber = "4007678231" })); _searchRequestServiceMock.Setup(x => x.CreateRelatedPerson(It.Is <RelatedPersonEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Identity>(new SSG_Identity() { FirstName = "firstName" })); _searchRequestServiceMock.Setup(x => x.CreateBankInfo(It.Is <BankingInformationEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_BankingInformation>(new SSG_Asset_BankingInformation() { BankingInformationId = validBankInformationId, BankName = "bankName" })); _searchRequestServiceMock.Setup(x => x.CreateVehicle(It.Is <VehicleEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_Vehicle>(new SSG_Asset_Vehicle() { VehicleId = validVehicleId })); _searchRequestServiceMock.Setup(x => x.CreateAssetOwner(It.Is <SSG_AssetOwner>(x => x.Vehicle.VehicleId == validVehicleId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_AssetOwner>(new SSG_AssetOwner() { Type = "Owner" })); _searchRequestServiceMock.Setup(x => x.CreateOtherAsset(It.Is <AssetOtherEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_Other>(new SSG_Asset_Other() { AssetOtherId = validOtherAssetId })); _searchRequestServiceMock.Setup(x => x.CreateCompensationClaim(It.Is <CompensationClaimEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_WorkSafeBcClaim>(new SSG_Asset_WorkSafeBcClaim() { ClaimNumber = "claimNumber" })); _searchRequestServiceMock.Setup(x => x.CreateEmployment(It.Is <EmploymentEntity>(x => x.BusinessName == COMPENSATION_BUISNESS_NAME && x.Date1 == new DateTime(2019, 9, 1)), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Employment>(new SSG_Employment() { EmploymentId = Guid.NewGuid(), })); _searchRequestServiceMock.Setup(x => x.CreateInsuranceClaim(It.Is <ICBCClaimEntity>(x => x.SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Asset_ICBCClaim>(new SSG_Asset_ICBCClaim() { ICBCClaimId = Guid.NewGuid() })); _searchRequestServiceMock.Setup(x => x.CreateInvolvedParty(It.IsAny <SSG_InvolvedParty>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_InvolvedParty>(new SSG_InvolvedParty() { })); _searchRequestServiceMock.Setup(x => x.CreateSimplePhoneNumber(It.IsAny <SSG_SimplePhoneNumber>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_SimplePhoneNumber>(new SSG_SimplePhoneNumber() { })); _searchRequestServiceMock.Setup(x => x.CreateTransaction(It.IsAny <SSG_SearchRequestResultTransaction>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_SearchRequestResultTransaction>(new SSG_SearchRequestResultTransaction() { })); _sut = new SearchResultService(_searchRequestServiceMock.Object, _loggerMock.Object, _mapper.Object); }
public async Task <SSG_SearchRequest> ProcessUpdateSearchRequest(SearchRequestOrdered searchRequestOrdered) { var cts = new CancellationTokenSource(); _cancellationToken = cts.Token; SSG_SearchRequest existedSearchRequest = await VerifySearchRequest(searchRequestOrdered); if (existedSearchRequest == null) { return(null); } existedSearchRequest.IsDuplicated = true; _uploadedSearchRequest = existedSearchRequest; //get existedPersonSought SSG_Person existedSoughtPerson = existedSearchRequest?.SSG_Persons?.FirstOrDefault( m => m.FirstName == existedSearchRequest.PersonSoughtFirstName && m.LastName == existedSearchRequest.PersonSoughtLastName && m.InformationSource == InformationSourceType.Request.Value && m.IsCreatedByAgency); if (existedSoughtPerson == null) { _logger.LogError("the updating personSought does not exist. something is wrong."); return(null); } existedSoughtPerson = await _searchRequestService.GetPerson(existedSoughtPerson.PersonId, _cancellationToken); existedSoughtPerson.IsDuplicated = true; _uploadedPerson = existedSoughtPerson; SearchRequestEntity newSearchRequest = _mapper.Map <SearchRequestEntity>(searchRequestOrdered); if (newSearchRequest == null) { _logger.LogError("cannot do updating as newSearchRequest is null"); return(null); } //update searchRequestEntity await UpdateSearchRequest(newSearchRequest); //update notesEntity if (!String.IsNullOrEmpty(newSearchRequest.Notes) && !String.Equals(existedSearchRequest.Notes, newSearchRequest.Notes, StringComparison.InvariantCultureIgnoreCase)) { await UploadNotes(newSearchRequest); } //update PersonEntity if (searchRequestOrdered.Person == null) { _logger.LogError("the searchRequestOrdered does not contain Person. The request is wrong."); return(null); } _personSought = searchRequestOrdered.Person; await UpdatePersonSought(); await UpdateSafetyConcern(); //update RelatedPerson applicant await UpdateRelatedApplicant((string.IsNullOrEmpty(newSearchRequest.ApplicantFirstName) && string.IsNullOrEmpty(newSearchRequest.ApplicantLastName))?null : new RelatedPersonEntity() { FirstName = newSearchRequest.ApplicantFirstName, LastName = newSearchRequest.ApplicantLastName, StatusCode = 1 }); //update identifiers //await UpdateIdentifiers(); await UploadIdentifiers(true); //update employment await UploadEmployment(true); //for phones, addresses, relatedPersons, names are same as creation, as if different, add new one, if same, ignore await UploadAddresses(true); await UploadPhones(true); await UploadRelatedPersons(true); await UploadAliases(true); return(_uploadedSearchRequest); }