public void TestCreateGetParticipantPersonSevisCommStatusesByParticipantIdQuery_Filtered() { var userAccount = new UserAccount { PrincipalId = 100, DisplayName = "display name", EmailAddress = "email" }; var participant = new Participant { ParticipantId = 1, ProjectId = 100 }; var participantPerson = new ParticipantPerson { ParticipantId = participant.ParticipantId, Participant = participant }; participant.ParticipantPerson = participantPerson; var sevisCommStatus = new SevisCommStatus { SevisCommStatusId = 500, SevisCommStatusName = "sevis comm status name" }; var status = new ParticipantPersonSevisCommStatus { Id = 1, AddedOn = DateTimeOffset.UtcNow, BatchId = "batchId", ParticipantId = participant.ParticipantId, ParticipantPerson = participantPerson, PrincipalId = userAccount.PrincipalId, SevisCommStatus = sevisCommStatus, SevisCommStatusId = sevisCommStatus.SevisCommStatusId, SevisOrgId = "sevis org Id", SevisUsername = "******" }; context.UserAccounts.Add(userAccount); context.Participants.Add(participant); context.ParticipantPersons.Add(participantPerson); context.SevisCommStatuses.Add(sevisCommStatus); context.ParticipantPersonSevisCommStatuses.Add(status); var defaultSorter = new ExpressionSorter <ParticipantPersonSevisCommStatusDTO>(x => x.AddedOn, SortDirection.Descending); var filter = new ExpressionFilter <ParticipantPersonSevisCommStatusDTO>(x => x.BatchId, ComparisonType.Equal, status.BatchId); var queryOperator = new QueryableOperator <ParticipantPersonSevisCommStatusDTO>(0, 1, defaultSorter); queryOperator.Filters.Add(filter); var results = ParticipantPersonsSevisQueries.CreateGetParticipantPersonSevisCommStatusesByParticipantIdQuery(context, participant.ProjectId, participant.ParticipantId, queryOperator); Assert.AreEqual(1, results.Count()); var firstResult = results.First(); Assert.AreEqual(status.Id, firstResult.Id); }
public void TestCreateGetParticipantPersonSevisCommStatusesQuery_DoesNotHaveUserAccount() { var participant = new Participant { ParticipantId = 1, ProjectId = 100 }; var participantPerson = new ParticipantPerson { ParticipantId = participant.ParticipantId, Participant = participant }; participant.ParticipantPerson = participantPerson; var sevisCommStatus = new SevisCommStatus { SevisCommStatusId = 500, SevisCommStatusName = "sevis comm status name" }; var status = new ParticipantPersonSevisCommStatus { Id = 1, AddedOn = DateTimeOffset.UtcNow, BatchId = "batchId", ParticipantId = participant.ParticipantId, ParticipantPerson = participantPerson, PrincipalId = null, SevisCommStatus = sevisCommStatus, SevisCommStatusId = sevisCommStatus.SevisCommStatusId, SevisOrgId = "sevis org Id", SevisUsername = "******" }; context.Participants.Add(participant); context.ParticipantPersons.Add(participantPerson); context.SevisCommStatuses.Add(sevisCommStatus); context.ParticipantPersonSevisCommStatuses.Add(status); var results = ParticipantPersonsSevisQueries.CreateGetParticipantPersonSevisCommStatusesQuery(context); Assert.AreEqual(1, results.Count()); var firstResult = results.First(); Assert.IsNull(firstResult.EmailAddress); Assert.IsNull(firstResult.DisplayName); Assert.IsNull(firstResult.PrincipalId); }
public async Task TestUpdate_SocialMedia_SevisNotLocked() { var personId = 1; var participantId = 1; var creator = 1; var updatorId = 2; var updator = new User(updatorId); var facebookType = new SocialMediaType { SocialMediaTypeId = SocialMediaType.Facebook.Id, SocialMediaTypeName = SocialMediaType.Facebook.Value }; var twitter = new SocialMediaType { SocialMediaTypeId = SocialMediaType.Twitter.Id, SocialMediaTypeName = SocialMediaType.Twitter.Value }; var oldSocialMediaTypeId = facebookType.SocialMediaTypeId; var oldValue = "oldValue"; var yesterday = DateTimeOffset.Now.AddDays(-1.0); Person person = new Person { PersonId = personId }; var socialMedia = new SocialMedia { SocialMediaId = 1, Person = person, PersonId = person.PersonId }; var participant = new Participant { ParticipantId = participantId, PersonId = person.PersonId, ParticipantStatusId = ParticipantStatus.Active.Id }; List <Participant> participants = new List <Participant>(); participants.Add(participant); person.Participations = participants; var participantPerson = new ParticipantPerson { Participant = participant, ParticipantId = participant.ParticipantId, }; participant.ParticipantPerson = participantPerson; var queuedToSubmitStatus = new SevisCommStatus { SevisCommStatusId = SevisCommStatus.InformationRequired.Id, SevisCommStatusName = SevisCommStatus.InformationRequired.Value }; var commStatus = new ParticipantPersonSevisCommStatus { AddedOn = DateTimeOffset.UtcNow, BatchId = "batch id", Id = 501, ParticipantId = participant.ParticipantId, ParticipantPerson = participantPerson, SevisCommStatus = queuedToSubmitStatus, SevisCommStatusId = queuedToSubmitStatus.SevisCommStatusId, }; participantPerson.ParticipantPersonSevisCommStatuses.Add(commStatus); person.SocialMedias.Add(socialMedia); context.SetupActions.Add(() => { context.SocialMedias.Add(socialMedia); context.SocialMediaTypes.Add(facebookType); context.SocialMediaTypes.Add(twitter); context.Participants.Add(participant); context.ParticipantPersons.Add(participantPerson); context.ParticipantPersonSevisCommStatuses.Add(commStatus); socialMedia.History.CreatedBy = creator; socialMedia.History.CreatedOn = yesterday; socialMedia.History.RevisedBy = creator; socialMedia.History.RevisedOn = yesterday; socialMedia.SocialMediaTypeId = facebookType.SocialMediaTypeId; socialMedia.SocialMediaType = facebookType; socialMedia.SocialMediaValue = oldValue; }); context.Revert(); var updatedSocialMedia = new UpdatedSocialMediaPresence(updator, socialMedia.SocialMediaId, "newValue", twitter.SocialMediaTypeId); var message = String.Format("An update was attempted on participant with id [{0}] but should have failed validation.", participant.ParticipantId); Action a = () => service.Update(updatedSocialMedia); Func <Task> f = () => service.UpdateAsync(updatedSocialMedia); a.ShouldNotThrow <EcaBusinessException>(); f.ShouldNotThrow <EcaBusinessException>(); }
public void TestCreateGetParticipantPersonsSevisDTOQuery_NoStatusesHaveBatchId() { var person = new Person { PersonId = 1, FullName = "full name" }; var status = new ParticipantStatus { ParticipantStatusId = 1, Status = "status", }; var participantType = new ParticipantType { IsPerson = true, Name = "part type", ParticipantTypeId = 90 }; var participant = new Participant { ParticipantId = 1, Status = status, ParticipantStatusId = status.ParticipantStatusId, ProjectId = 250, ParticipantTypeId = participantType.ParticipantTypeId, ParticipantType = participantType, PersonId = person.PersonId, Person = person }; var participantPerson = new ParticipantPerson { ParticipantId = participant.ParticipantId, Participant = participant, EndDate = DateTimeOffset.UtcNow.AddDays(10.0), IsCancelled = true, IsDS2019Printed = true, IsDS2019SentToTraveler = true, IsSentToSevisViaRTI = true, IsValidatedViaRTI = true, SevisBatchResult = "sevis batch result", SevisId = "sevis id", SevisValidationResult = "sevis validation result", StartDate = DateTimeOffset.UtcNow.AddDays(-10.0) }; participant.ParticipantPerson = participantPerson; var readyToSubmitStatus = new SevisCommStatus { SevisCommStatusId = SevisCommStatus.ReadyToSubmit.Id, SevisCommStatusName = SevisCommStatus.ReadyToSubmit.Value }; var pendingSendToSevisStatus = new SevisCommStatus { SevisCommStatusId = SevisCommStatus.PendingSevisSend.Id, SevisCommStatusName = SevisCommStatus.PendingSevisSend.Value }; var yesterdayStatus = new ParticipantPersonSevisCommStatus { AddedOn = DateTimeOffset.UtcNow.AddDays(-1.0), Id = 500, ParticipantId = participant.ParticipantId, ParticipantPerson = participantPerson, SevisCommStatus = readyToSubmitStatus, SevisCommStatusId = readyToSubmitStatus.SevisCommStatusId, }; var todayStatus = new ParticipantPersonSevisCommStatus { AddedOn = DateTimeOffset.UtcNow, Id = 501, ParticipantId = participant.ParticipantId, ParticipantPerson = participantPerson, SevisCommStatus = pendingSendToSevisStatus, SevisCommStatusId = pendingSendToSevisStatus.SevisCommStatusId, }; participantPerson.ParticipantPersonSevisCommStatuses.Add(todayStatus); participantPerson.ParticipantPersonSevisCommStatuses.Add(yesterdayStatus); context.SevisCommStatuses.Add(readyToSubmitStatus); context.SevisCommStatuses.Add(pendingSendToSevisStatus); context.ParticipantPersonSevisCommStatuses.Add(todayStatus); context.ParticipantPersonSevisCommStatuses.Add(yesterdayStatus); context.ParticipantTypes.Add(participantType); context.ParticipantStatuses.Add(status); context.Participants.Add(participant); context.ParticipantPersons.Add(participantPerson); context.People.Add(person); var results = ParticipantPersonsSevisQueries.CreateGetParticipantPersonsSevisDTOQuery(context).ToList(); Assert.AreEqual(1, results.Count()); var firstResult = results.First(); Assert.IsNull(firstResult.LastBatchDate); }
public async Task TestUpdate_PersonEmail_SevisNotLocked() { var personId = 1; var participantId = 1; Person person = new Person { PersonId = personId }; var participant = new Participant { ParticipantId = participantId, PersonId = person.PersonId, ParticipantStatusId = ParticipantStatus.Active.Id }; List <Participant> participants = new List <Participant>(); participants.Add(participant); person.Participations = participants; var participantPerson = new ParticipantPerson { Participant = participant, ParticipantId = participant.ParticipantId, }; participant.ParticipantPerson = participantPerson; var queuedToSubmitStatus = new SevisCommStatus { SevisCommStatusId = SevisCommStatus.InformationRequired.Id, SevisCommStatusName = SevisCommStatus.InformationRequired.Value }; var commStatus = new ParticipantPersonSevisCommStatus { AddedOn = DateTimeOffset.UtcNow, BatchId = "batch id", Id = 501, ParticipantId = participant.ParticipantId, ParticipantPerson = participantPerson, SevisCommStatus = queuedToSubmitStatus, SevisCommStatusId = queuedToSubmitStatus.SevisCommStatusId, }; participantPerson.ParticipantPersonSevisCommStatuses.Add(commStatus); EmailAddressType emailAddressType = new EmailAddressType { EmailAddressTypeId = EmailAddressType.Home.Id, EmailAddressTypeName = EmailAddressType.Home.Value }; var creatorId = 1; var updatorId = 2; var yesterday = DateTimeOffset.UtcNow.AddDays(-1.0); var emailAddressId = 1; EmailAddress emailAddressToUpdate = null; context.SetupActions.Add(() => { emailAddressToUpdate = new EmailAddress { EmailAddressId = emailAddressId, Person = person, PersonId = person.PersonId }; emailAddressToUpdate.History.CreatedBy = creatorId; emailAddressToUpdate.History.RevisedBy = creatorId; emailAddressToUpdate.History.CreatedOn = yesterday; emailAddressToUpdate.History.RevisedOn = yesterday; person.EmailAddresses.Add(emailAddressToUpdate); context.EmailAddressTypes.Add(emailAddressType); context.People.Add(person); context.EmailAddresses.Add(emailAddressToUpdate); context.Participants.Add(participant); context.ParticipantPersons.Add(participantPerson); context.ParticipantPersonSevisCommStatuses.Add(commStatus); }); context.Revert(); var updatedEmailModel = new UpdatedEmailAddress(new User(updatorId), emailAddressId, "*****@*****.**", emailAddressType.EmailAddressTypeId, true); var message = String.Format("An update was attempted on participant with id [{0}] but should have failed validation.", participant.ParticipantId); Action a = () => service.Update(updatedEmailModel); Func <Task> f = () => service.UpdateAsync(updatedEmailModel); a.ShouldNotThrow <EcaBusinessException>(); f.ShouldNotThrow <EcaBusinessException>(); }