コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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>();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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>();
        }