public void PersonSearchCompleted_with_null_addresses_should_map_to_SSG_SearchApiEvent_correctly() { PersonSearchCompleted completed = new PersonSearchCompleted() { SearchRequestId = Guid.NewGuid(), TimeStamp = new DateTime(2003, 3, 3), ProviderProfile = new ProviderProfile() { Name = "completedProfile" }, MatchedPerson = new Person() { FirstName = "firstName", LastName = "lastName", DateOfBirth = new DateTime(2019, 3, 5), Identifiers = new PersonalIdentifierActual[] { new PersonalIdentifierActual() { }, new PersonalIdentifierActual() { } }, Addresses = null } }; SSG_SearchApiEvent searchEvent = _mapper.Map <SSG_SearchApiEvent>(completed); Assert.AreEqual("completedProfile", searchEvent.ProviderName); Assert.AreEqual(new DateTime(2003, 3, 3), searchEvent.TimeStamp); Assert.AreEqual(Keys.EVENT_COMPLETED, searchEvent.EventType); Assert.AreEqual(Keys.SEARCH_API_EVENT_NAME, searchEvent.Name); Assert.AreEqual("Auto search processing completed successfully. 2 identifier(s) found. 0 addresses found. 0 phone number(s) found.", searchEvent.Message); }
public void PersonSearchRejected_should_map_to_SSG_SearchApiEvent_correctly() { PersonSearchRejected rejected = new PersonSearchRejected() { SearchRequestId = Guid.NewGuid(), TimeStamp = new DateTime(2003, 3, 3), ProviderProfile = new ProviderProfile() { Name = "rejectedProfile" }, Reasons = new ValidationResult[] { new ValidationResult() { PropertyName = "property1", ErrorMessage = "errMsg1" }, new ValidationResult() { PropertyName = "property2", ErrorMessage = "errMsg2" }, } }; SSG_SearchApiEvent searchEvent = _mapper.Map <SSG_SearchApiEvent>(rejected); Assert.AreEqual("rejectedProfile", searchEvent.ProviderName); Assert.AreEqual(new DateTime(2003, 3, 3), searchEvent.TimeStamp); Assert.AreEqual(Keys.EVENT_REJECTED, searchEvent.EventType); Assert.AreEqual(Keys.SEARCH_API_EVENT_NAME, searchEvent.Name); Assert.AreEqual("Auto search has been rejected. Reasons: property1 : errMsg1, property2 : errMsg2", searchEvent.Message); }
public async Task with_success_should_return_event() { var searchApiEvent = new SSG_SearchApiEvent() { Name = eventName }; var result = await _sut.AddEventAsync(_testId, searchApiEvent, CancellationToken.None); Assert.AreEqual(_testId, result.Id); Assert.AreEqual(eventName, result.Name); }
public void PersonSearchAccepted_should_map_to_SSG_SearchApiEvent_correctly() { PersonSearchAccepted accepted = new PersonSearchAccepted() { SearchRequestId = Guid.NewGuid(), TimeStamp = new DateTime(2003, 3, 3), ProviderProfile = new ProviderProfile() { Name = "acceptedProfile" } }; SSG_SearchApiEvent searchEvent = _mapper.Map <SSG_SearchApiEvent>(accepted); Assert.AreEqual("acceptedProfile", searchEvent.ProviderName); Assert.AreEqual(new DateTime(2003, 3, 3), searchEvent.TimeStamp); Assert.AreEqual(Keys.EVENT_ACCEPTED, searchEvent.EventType); Assert.AreEqual(Keys.SEARCH_API_EVENT_NAME, searchEvent.Name); Assert.AreEqual("Auto search has been accepted for processing", searchEvent.Message); }
public void PersonSearchFailed_should_map_to_SSG_SearchApiEvent_correctly() { PersonSearchFailed failed = new PersonSearchFailed() { SearchRequestId = Guid.NewGuid(), TimeStamp = new DateTime(2003, 3, 3), ProviderProfile = new ProviderProfile() { Name = "failedProfile" }, Cause = "failedCause" }; SSG_SearchApiEvent searchEvent = _mapper.Map <SSG_SearchApiEvent>(failed); Assert.AreEqual("failedProfile", searchEvent.ProviderName); Assert.AreEqual(new DateTime(2003, 3, 3), searchEvent.TimeStamp); Assert.AreEqual(Keys.EVENT_FAILED, searchEvent.EventType); Assert.AreEqual(Keys.SEARCH_API_EVENT_NAME, searchEvent.Name); Assert.AreEqual("Auto search processing failed. Reason: failedCause", searchEvent.Message); }
public void PersonSearchRejected_with_null_reasons_should_map_to_SSG_SearchApiEvent_correctly() { PersonSearchRejected rejected = new PersonSearchRejected() { SearchRequestId = Guid.NewGuid(), TimeStamp = new DateTime(2003, 3, 3), ProviderProfile = new ProviderProfile() { Name = "rejectedProfile" }, Reasons = null }; SSG_SearchApiEvent searchEvent = _mapper.Map <SSG_SearchApiEvent>(rejected); Assert.AreEqual("rejectedProfile", searchEvent.ProviderName); Assert.AreEqual(new DateTime(2003, 3, 3), searchEvent.TimeStamp); Assert.AreEqual(Keys.EVENT_REJECTED, searchEvent.EventType); Assert.AreEqual(Keys.SEARCH_API_EVENT_NAME, searchEvent.Name); Assert.AreEqual("Auto search has been rejected.", searchEvent.Message); }
public void PersonSearchCompleted_with_0_matchperson_should_map_to_SSG_SearchApiEvent_correctly() { PersonSearchCompleted completed = new PersonSearchCompleted() { SearchRequestId = Guid.NewGuid(), TimeStamp = new DateTime(2003, 3, 3), ProviderProfile = new ProviderProfile() { Name = "completedProfile" }, MatchedPersons = new List <Person>() { } }; SSG_SearchApiEvent searchEvent = _mapper.Map <SSG_SearchApiEvent>(completed); Assert.AreEqual("completedProfile", searchEvent.ProviderName); Assert.AreEqual(new DateTime(2003, 3, 3), searchEvent.TimeStamp); Assert.AreEqual(Keys.EVENT_COMPLETED, searchEvent.EventType); Assert.AreEqual(Keys.SEARCH_API_EVENT_NAME, searchEvent.Name); Assert.AreEqual("Auto search processing completed successfully. 0 Matched Persons found.\n", searchEvent.Message); }
public async Task <SSG_SearchApiEvent> AddEventAsync(Guid searchApiRequestId, SSG_SearchApiEvent searchApiEvent, CancellationToken cancellationToken) { if (searchApiRequestId == default || searchApiRequestId == Guid.Empty) { throw new ArgumentNullException(nameof(searchApiRequestId)); } searchApiEvent.SearchApiRequest = new SSG_SearchApiRequest() { SearchApiRequestId = searchApiRequestId }; return(await this._oDataClient.For <SSG_SearchApiEvent>().Set(searchApiEvent).InsertEntryAsync(cancellationToken)); }
public void Init() { _testGuid = Guid.NewGuid(); _testFileId = "testFileId"; _exceptionGuid = Guid.NewGuid(); _loggerMock = new Mock <ILogger <PersonSearchController> >(); _searchApiRequestServiceMock = new Mock <ISearchApiRequestService>(); _searchResultServiceMock = new Mock <ISearchResultService>(); _mapper = new Mock <IMapper>(); var validRequestId = Guid.NewGuid(); var invalidRequestId = Guid.NewGuid(); _fakeSearchApiEvent = new SSG_SearchApiEvent { }; _fakePersoneIdentifier = new SSG_Identifier { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonAddress = new SSG_Address { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonPhoneNumber = new SSG_PhoneNumber { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeName = new SSG_Aliase { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePerson = new SSG_Person { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonAcceptedEvent = new PersonSearchAccepted() { SearchRequestId = Guid.NewGuid(), FileId = _testFileId, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" } }; _fakePersonCompletedEvent = new PersonSearchCompleted() { SearchRequestId = Guid.NewGuid(), FileId = _testFileId, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, MatchedPersons = new List <Person>() { new Person() { DateOfBirth = DateTime.Now, FirstName = "TEST1", LastName = "TEST2", Identifiers = new List <PersonalIdentifier>() { }, Addresses = new List <Address>() { }, Phones = new List <Phone>() { }, Names = new List <Name>() { } } } }; _fakePersonFailedEvent = new PersonSearchFailed() { SearchRequestId = Guid.NewGuid(), FileId = _testFileId, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Cause = "Unable to proceed" }; _fakePersonRejectEvent = new PersonSearchRejected() { SearchRequestId = Guid.NewGuid(), FileId = _testFileId, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Reasons = new List <ValidationResult> { } }; _fakePersonFinalizedEvent = new PersonSearchFinalized() { SearchRequestId = Guid.NewGuid(), FileId = _testFileId, TimeStamp = DateTime.Now, Message = "test message" }; _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchAccepted>())) .Returns(_fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchRejected>())) .Returns(_fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchFailed>())) .Returns(_fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchCompleted>())) .Returns(_fakeSearchApiEvent); _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 <SSG_Person>(It.IsAny <Person>())) .Returns(_fakePerson); _searchApiRequestServiceMock.Setup(x => x.GetLinkedSearchRequestIdAsync(It.Is <Guid>(x => x == _testGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <Guid>(_testGuid)); _searchApiRequestServiceMock.Setup(x => x.GetLinkedSearchRequestIdAsync(It.Is <Guid>(x => x == _exceptionGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <Guid>(invalidRequestId)); _searchApiRequestServiceMock.Setup(x => x.MarkComplete(It.Is <Guid>(x => x == _testGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_SearchApiRequest>(new SSG_SearchApiRequest() { SearchApiRequestId = _testGuid, Name = "Random Event" })); _searchResultServiceMock.Setup(x => x.ProcessPersonFound(It.Is <Person>(x => x.FirstName == "TEST1"), It.IsAny <ProviderProfile>(), It.IsAny <SSG_SearchRequest>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <bool>(true)); _searchApiRequestServiceMock.Setup(x => x.AddEventAsync(It.Is <Guid>(x => x == _testGuid), It.IsAny <SSG_SearchApiEvent>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_SearchApiEvent>(new SSG_SearchApiEvent() { Id = _testGuid, Name = "Random Event" })); _searchApiRequestServiceMock.Setup(x => x.AddEventAsync(It.Is <Guid>(x => x == _exceptionGuid), It.IsAny <SSG_SearchApiEvent>(), It.IsAny <CancellationToken>())) .Throws(new Exception("random exception")); _sut = new PersonSearchController(_searchResultServiceMock.Object, _searchApiRequestServiceMock.Object, _loggerMock.Object, _mapper.Object); }
public void Init() { _testGuid = Guid.NewGuid(); _searchRequestKey = "fileId_SequenceNumber"; _searchRequestKeySearchNotComplete = "fileId_SequenceNumber_NotComplete"; _exceptionSearchRequestKey = "exception_seqNum"; _exceptionGuid = Guid.NewGuid(); _loggerMock = new Mock <ILogger <PersonSearchController> >(); _searchApiRequestServiceMock = new Mock <ISearchApiRequestService>(); _searchResultServiceMock = new Mock <ISearchResultService>(); _dataPartnerServiceMock = new Mock <IDataPartnerService>(); _mapper = new Mock <IMapper>(); _registerMock = new Mock <ISearchRequestRegister>(); _fakeSearchApiRequest = new SSG_SearchApiRequest() { SearchApiRequestId = _testGuid }; var validRequestId = Guid.NewGuid(); var invalidRequestId = Guid.NewGuid(); _fakeSearchApiEvent = new SSG_SearchApiEvent { }; _fakePersoneIdentifier = new IdentifierEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonAddress = new AddressEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonPhoneNumber = new PhoneNumberEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeName = new AliasEntity { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePerson = new SSG_Person { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakeSourceIdentifier = new SSG_Identifier() { IdentifierId = Guid.NewGuid() }; _fakePersonAcceptedEvent = new PersonSearchAccepted() { SearchRequestId = Guid.NewGuid(), SearchRequestKey = _searchRequestKey, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" } }; _fakePersonCompletedEvent = new PersonSearchCompleted() { SearchRequestId = Guid.NewGuid(), SearchRequestKey = _searchRequestKey, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, MatchedPersons = new List <PersonFound>() { new PersonFound() { DateOfBirth = DateTime.Now, FirstName = "TEST1", LastName = "TEST2", Identifiers = new List <PersonalIdentifier>() { }, Addresses = new List <Address>() { }, Phones = new List <Phone>() { }, Names = new List <Name>() { }, SourcePersonalIdentifier = new PersonalIdentifier() { Value = "1234567" } } } }; _fakePersonFailedEvent = new PersonSearchFailed() { SearchRequestId = Guid.NewGuid(), SearchRequestKey = _searchRequestKey, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Cause = "Unable to proceed" }; _fakePersonRejectEvent = new PersonSearchRejected() { SearchRequestId = Guid.NewGuid(), SearchRequestKey = _searchRequestKey, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Reasons = new List <ValidationResult> { } }; _fakePersonFinalizedEvent = new PersonSearchFinalized() { SearchRequestId = Guid.NewGuid(), SearchRequestKey = _searchRequestKey, TimeStamp = DateTime.Now, Message = "test message" }; _fakePersonSubmittedEvent = new PersonSearchSubmitted() { SearchRequestId = Guid.NewGuid(), SearchRequestKey = _searchRequestKey, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Message = "the search api request has been submitted to the Data provider." }; _fakePersonInformationEvent = new PersonSearchInformation { SearchRequestId = Guid.NewGuid(), SearchRequestKey = _searchRequestKey, TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Message = "Recieved info from data provider" }; _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchAccepted>())) .Returns(_fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchRejected>())) .Returns(_fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchFailed>())) .Returns(_fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchCompleted>())) .Returns(_fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchSubmitted>())) .Returns(_fakeSearchApiEvent); _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 <SSG_Person>(It.IsAny <Person>())) .Returns(_fakePerson); _searchApiRequestServiceMock.Setup(x => x.GetLinkedSearchRequestIdAsync(It.Is <Guid>(x => x == _testGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <Guid>(_testGuid)); _searchApiRequestServiceMock.Setup(x => x.GetLinkedSearchRequestIdAsync(It.Is <Guid>(x => x == _exceptionGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <Guid>(invalidRequestId)); _searchApiRequestServiceMock.Setup(x => x.MarkComplete(It.Is <Guid>(x => x == _testGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_SearchApiRequest>(new SSG_SearchApiRequest() { SearchApiRequestId = _testGuid, SequenceNumber = "1234567" })); _dataPartnerServiceMock .Setup(x => x.GetSearchApiRequestDataProvider(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new SSG_SearchapiRequestDataProvider { AdaptorName = "ICBC", SearchAPIRequestId = _testGuid, NumberOfFailures = 0, TimeBetweenRetries = 10 })); _dataPartnerServiceMock .Setup(x => x.UpdateSearchRequestApiProvider(It.IsAny <SSG_SearchapiRequestDataProvider>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(new SSG_SearchapiRequestDataProvider { AdaptorName = "ICBC", SearchAPIRequestId = _testGuid, NumberOfFailures = 0, TimeBetweenRetries = 10 })); _searchResultServiceMock.Setup(x => x.ProcessPersonFound(It.Is <Person>(x => x.FirstName == "TEST1"), It.IsAny <ProviderProfile>(), It.IsAny <SSG_SearchRequest>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>(), It.IsAny <SSG_Identifier>())) .Returns(Task.FromResult <bool>(true)); _searchApiRequestServiceMock.Setup(x => x.AddEventAsync(It.Is <Guid>(x => x == _testGuid), It.IsAny <SSG_SearchApiEvent>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_SearchApiEvent>(new SSG_SearchApiEvent() { Id = _testGuid, Name = "Random Event" })); _searchApiRequestServiceMock.Setup(x => x.AddEventAsync(It.Is <Guid>(x => x == _exceptionGuid), It.IsAny <SSG_SearchApiEvent>(), It.IsAny <CancellationToken>())) .Throws(new Exception("random exception")); _registerMock.Setup(x => x.GetSearchApiRequest(It.Is <string>(m => m == _searchRequestKey))) .Returns(Task.FromResult(_fakeSearchApiRequest)); _registerMock.Setup(x => x.GetSearchApiRequest(It.Is <string>(m => m == _searchRequestKeySearchNotComplete))) .Returns(Task.FromResult(_fakeSearchApiRequest)); _registerMock.Setup(x => x.DataPartnerSearchIsComplete(It.Is <string>(m => m == _searchRequestKey))) .Returns(Task.FromResult(true)); _registerMock.Setup(x => x.DataPartnerSearchIsComplete(It.Is <string>(m => m == _searchRequestKeySearchNotComplete))) .Returns(Task.FromResult(false)); _registerMock.Setup(x => x.GetMatchedSourceIdentifier(It.IsAny <PersonalIdentifier>(), It.IsAny <Guid>())) .Returns(Task.FromResult(_fakeSourceIdentifier)); _registerMock.Setup(x => x.RemoveSearchApiRequest(It.IsAny <Guid>())) .Returns(Task.FromResult(true)); _sut = new PersonSearchController(_searchResultServiceMock.Object, _searchApiRequestServiceMock.Object, _dataPartnerServiceMock.Object, _loggerMock.Object, _mapper.Object, _registerMock.Object); }
public void Init() { _testGuid = Guid.NewGuid(); _exceptionGuid = Guid.NewGuid(); _loggerMock = new Mock <ILogger <PersonSearchController> >(); _searchApiRequestServiceMock = new Mock <ISearchApiRequestService>(); _searchRequestServiceMock = new Mock <ISearchRequestService>(); _mapper = new Mock <IMapper>(); var validRequestId = Guid.NewGuid(); var invalidRequestId = Guid.NewGuid(); fakeSearchApiEvent = new SSG_SearchApiEvent { }; _fakePersoneIdentifier = new SSG_Identifier { SSG_SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonAddress = new SSG_Address { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; _fakePersonPhoneNumber = new SSG_PhoneNumber { SearchRequest = new SSG_SearchRequest { SearchRequestId = validRequestId } }; fakePersonAcceptedEvent = new PersonSearchAccepted() { SearchRequestId = Guid.NewGuid(), TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" } }; _fakePersonCompletedEvent = new PersonSearchCompleted() { SearchRequestId = Guid.NewGuid(), TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, MatchedPerson = new Person() { DateOfBirth = DateTime.Now, FirstName = "TEST1", LastName = "TEST2", Identifiers = new List <PersonalIdentifierActual>() { new PersonalIdentifierActual() { SerialNumber = "test", IssuedBy = "test", Type = PersonalIdentifierType.DriverLicense } }, Addresses = new List <PersonalAddressActual>() { new PersonalAddressActual() { AddressLine1 = "AddressLine1", AddressLine2 = "AddressLine2", Province = "Manitoba", City = "testCity", Type = "residence", Country = "canada", PostalCode = "p3p3p3", SuppliedBy = "Employer" } }, PhoneNumbers = new List <PersonalPhoneNumberActual>() { new PersonalPhoneNumberActual() { PhoneNumber = "4005678900" } } } }; fakePersonFailedEvent = new PersonSearchFailed() { SearchRequestId = Guid.NewGuid(), TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Cause = "Unable to proceed" }; fakePersonRejectEvent = new PersonSearchRejected() { SearchRequestId = Guid.NewGuid(), TimeStamp = DateTime.Now, ProviderProfile = new ProviderProfile() { Name = "TEST PROVIDER" }, Reasons = new List <ValidationResult> { } }; _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchAccepted>())) .Returns(fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchRejected>())) .Returns(fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchFailed>())) .Returns(fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_SearchApiEvent>(It.IsAny <PersonSearchCompleted>())) .Returns(fakeSearchApiEvent); _mapper.Setup(m => m.Map <SSG_Identifier>(It.IsAny <PersonalIdentifier>())) .Returns(_fakePersoneIdentifier); _mapper.Setup(m => m.Map <SSG_PhoneNumber>(It.IsAny <PersonalPhoneNumber>())) .Returns(_fakePersonPhoneNumber); _mapper.Setup(m => m.Map <SSG_Address>(It.IsAny <PersonalAddress>())) .Returns(_fakePersonAddress); _searchApiRequestServiceMock.Setup(x => x.GetLinkedSearchRequestIdAsync(It.Is <Guid>(x => x == _testGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <Guid>(_testGuid)); _searchApiRequestServiceMock.Setup(x => x.GetLinkedSearchRequestIdAsync(It.Is <Guid>(x => x == _exceptionGuid), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <Guid>(invalidRequestId)); _searchRequestServiceMock.Setup(x => x.CreateIdentifier(It.Is <SSG_Identifier>(x => x.SSG_SearchRequest.SearchRequestId == validRequestId), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_Identifier>(new SSG_Identifier() { Identification = "test identification" })); _searchRequestServiceMock.Setup(x => x.CreateIdentifier(It.Is <SSG_Identifier>(x => x.SSG_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() { FullText = "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" })); _searchApiRequestServiceMock.Setup(x => x.AddEventAsync(It.Is <Guid>(x => x == _testGuid), It.IsAny <SSG_SearchApiEvent>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <SSG_SearchApiEvent>(new SSG_SearchApiEvent() { Id = _testGuid, Name = "Random Event" })); _searchApiRequestServiceMock.Setup(x => x.AddEventAsync(It.Is <Guid>(x => x == _exceptionGuid), It.IsAny <SSG_SearchApiEvent>(), It.IsAny <CancellationToken>())) .Throws(new Exception("random exception")); _sut = new PersonSearchController(_searchRequestServiceMock.Object, _searchApiRequestServiceMock.Object, _loggerMock.Object, _mapper.Object); }
public void PersonSearchCompleted_should_map_to_SSG_SearchApiEvent_correctly() { PersonSearchCompleted completed = new PersonSearchCompleted() { SearchRequestId = Guid.NewGuid(), TimeStamp = new DateTime(2003, 3, 3), ProviderProfile = new ProviderProfile() { Name = "completedProfile" }, MatchedPersons = new List <Person>() { new Person() { FirstName = "firstName", LastName = "lastName", DateOfBirth = new DateTime(2019, 3, 5), Identifiers = new PersonalIdentifier[] { new PersonalIdentifier() { }, new PersonalIdentifier() { } }, Addresses = new Address[] { new Address() { }, new Address() { } }, Phones = new Phone[] { new Phone() { }, new Phone() { } }, Names = new Name[] { new Name() { }, new Name() { } }, Employments = new Employment[] { new Employment() { } }, BankInfos = new BankInfo[] { new BankInfo() { } }, OtherAssets = new OtherAsset[] { new OtherAsset() { } } }, new Person() { FirstName = "firstName", LastName = "lastName", DateOfBirth = new DateTime(2019, 3, 5), Identifiers = new PersonalIdentifier[] { new PersonalIdentifier() { }, }, Addresses = null, Phones = null, Names = new Name[] { new Name() { } }, RelatedPersons = new RelatedPerson[] { new RelatedPerson() { } }, Vehicles = new Vehicle[] { new Vehicle() { } } } } }; SSG_SearchApiEvent searchEvent = _mapper.Map <SSG_SearchApiEvent>(completed); Assert.AreEqual("completedProfile", searchEvent.ProviderName); Assert.AreEqual(new DateTime(2003, 3, 3), searchEvent.TimeStamp); Assert.AreEqual(Keys.EVENT_COMPLETED, searchEvent.EventType); Assert.AreEqual(Keys.SEARCH_API_EVENT_NAME, searchEvent.Name); Assert.AreEqual("Auto search processing completed successfully. 2 Matched Persons found.\nFor Matched Person 1 : 2 identifier(s) found. 2 addresses found. 2 phone number(s) found. 2 name(s) found. 1 employment(s) found. 0 related person(s) found. 1 bank info(s) found. 0 vehicle(s) found. 1 other asset(s) found.\nFor Matched Person 2 : 1 identifier(s) found. 0 addresses found. 0 phone number(s) found. 1 name(s) found. 0 employment(s) found. 1 related person(s) found. 0 bank info(s) found. 1 vehicle(s) found. 0 other asset(s) found.\n", searchEvent.Message); }