コード例 #1
0
        public async Task TestUpdate_CheckProperties()
        {
            var creator      = 1;
            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);
            var socialMedia          = new SocialMedia
            {
                SocialMediaId = 1
            };

            context.SetupActions.Add(() =>
            {
                context.SocialMedias.Add(socialMedia);
                context.SocialMediaTypes.Add(facebookType);
                context.SocialMediaTypes.Add(twitter);
                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;
            });
            var    updatorId       = 2;
            var    updator         = new User(updatorId);
            var    updatedInstance = new UpdatedSocialMediaPresence(updator, socialMedia.SocialMediaId, "newValue", twitter.SocialMediaTypeId);
            Action tester          = () =>
            {
                Assert.AreEqual(1, context.SocialMedias.Count());
                Assert.AreEqual(2, context.SocialMediaTypes.Count());
                Assert.AreEqual(updatedInstance.Value, socialMedia.SocialMediaValue);
                Assert.AreEqual(updatedInstance.SocialMediaTypeId, socialMedia.SocialMediaTypeId);
                Assert.AreEqual(creator, socialMedia.History.CreatedBy);
                Assert.AreEqual(yesterday, socialMedia.History.CreatedOn);
                DateTimeOffset.Now.Should().BeCloseTo(socialMedia.History.RevisedOn, 2000);
                Assert.AreEqual(updatorId, socialMedia.History.RevisedBy);
            };

            context.Revert();
            service.Update(updatedInstance);
            tester();

            context.Revert();
            await service.UpdateAsync(updatedInstance);

            tester();
        }
コード例 #2
0
 public void TestConstructor_UnknownSocialMediaType()
 {
     var id                = 10;
     var userId            = 1;
     var socialMediaTypeId = -1;
     var value             = "facebook.com/someone";
     var user              = new User(userId);
     var instance          = new UpdatedSocialMediaPresence(user, socialMediaTypeId, value, id);
 }
コード例 #3
0
        public void TestConstructor()
        {
            var userId            = 1;
            var user              = new User(userId);
            var id                = 2;
            var value             = "value";
            var socialMediaTypeId = SocialMediaType.Facebook.Id;
            var instance          = new UpdatedSocialMediaPresence(user, id, value, socialMediaTypeId);

            Assert.AreEqual(value, instance.Value);
            Assert.AreEqual(id, instance.Id);
            Assert.AreEqual(socialMediaTypeId, instance.SocialMediaTypeId);
            Assert.IsTrue(Object.ReferenceEquals(user, instance.Update.User));
        }
コード例 #4
0
        public async Task TestUpdate_SocialMediaDoesNotExist()
        {
            var updatorId       = 2;
            var updator         = new User(updatorId);
            var updatedInstance = new UpdatedSocialMediaPresence(updator, 1, "value", SocialMediaType.Twitter.Id);

            Func <Task> f = () =>
            {
                return(service.UpdateAsync(updatedInstance));
            };

            service.Invoking(x => x.Update(updatedInstance)).ShouldThrow <ModelNotFoundException>()
            .WithMessage(String.Format("The social media with id [{0}] was not found.", updatedInstance.Id));
            f.ShouldThrow <ModelNotFoundException>()
            .WithMessage(String.Format("The social media with id [{0}] was not found.", updatedInstance.Id));
        }
コード例 #5
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>();
        }