Esempio n. 1
0
        public void Validate_EventDoesNotAcceptOnlineRegistrations_HasError()
        {
            var mockTeachingEvent = new TeachingEvent {
                Id = Guid.NewGuid(), WebFeedId = null
            };
            var mockPickListItem = new PickListItem {
                Id = 123
            };

            _mockStore
            .Setup(mock => mock.GetTeachingEventAsync((Guid)mockTeachingEvent.Id))
            .ReturnsAsync(mockTeachingEvent);
            _mockStore
            .Setup(mock => mock.GetPickListItems("msevtmgt_eventregistration", "dfe_channelcreation"))
            .Returns(new[] { mockPickListItem }.AsQueryable());

            var registration = new TeachingEventRegistration()
            {
                EventId   = (Guid)mockTeachingEvent.Id,
                ChannelId = mockPickListItem.Id,
            };

            var result = _validator.TestValidate(registration);

            result.IsValid.Should().BeFalse();

            result.ShouldHaveValidationErrorFor("EventId")
            .WithErrorMessage("Attendence cannot be registered for this event via the API (it has no WebFeedId).");
        }
Esempio n. 2
0
        public void Validate_WhenValid_HasNoErrors()
        {
            var mockTeachingEvent = new TeachingEvent {
                Id = Guid.NewGuid(), WebFeedId = "123"
            };
            var mockPickListItem = new PickListItem {
                Id = 123
            };

            _mockStore
            .Setup(mock => mock.GetTeachingEventAsync((Guid)mockTeachingEvent.Id))
            .ReturnsAsync(mockTeachingEvent);
            _mockStore
            .Setup(mock => mock.GetPickListItems("msevtmgt_eventregistration", "dfe_channelcreation"))
            .Returns(new[] { mockPickListItem }.AsQueryable());

            var registration = new TeachingEventRegistration()
            {
                EventId   = (Guid)mockTeachingEvent.Id,
                ChannelId = mockPickListItem.Id,
            };

            var result = _validator.TestValidate(registration);

            result.IsValid.Should().BeTrue();
        }
Esempio n. 3
0
        public void Validate_ChannelIdIsNullWhenExistingCandidate_HasNoError()
        {
            var registration = new TeachingEventRegistration()
            {
                Id = Guid.NewGuid(), ChannelId = null
            };
            var result = _validator.TestValidate(registration);

            result.ShouldNotHaveValidationErrorFor("ChannelId");
        }
Esempio n. 4
0
        public void ToEntity_WhenNotAlreadyRegisteredForEvent_CreatesATeachingEventRegistrationEntity()
        {
            var mockService  = new Mock <IOrganizationServiceAdapter>();
            var context      = mockService.Object.Context();
            var mockCrm      = new Mock <ICrmService>();
            var registration = new TeachingEventRegistration()
            {
                CandidateId = Guid.NewGuid(), EventId = Guid.NewGuid()
            };

            mockCrm.Setup(m => m.MappableEntity("msevtmgt_eventregistration", null, context)).Returns(new Entity("msevtmgt_eventregistration"));
            mockCrm.Setup(m => m.CandidateYetToRegisterForTeachingEvent(registration.CandidateId, registration.EventId)).Returns(true);

            registration.ToEntity(mockCrm.Object, context);

            mockCrm.Verify(m => m.MappableEntity("msevtmgt_eventregistration", null, context), Times.Once);
        }
Esempio n. 5
0
        public void ToEntity_WhenAlreadyRegisteredForEvent_DoesNotCreateTeachingEventRegistrationEntity()
        {
            var mockService  = new Mock <IOrganizationServiceAdapter>();
            var context      = mockService.Object.Context();
            var mockCrm      = new Mock <ICrmService>();
            var registration = new TeachingEventRegistration()
            {
                CandidateId = Guid.NewGuid(), EventId = Guid.NewGuid()
            };

            mockCrm.Setup(m => m.CandidateYetToRegisterForTeachingEvent(registration.CandidateId, registration.EventId)).Returns(false);

            var entity = registration.ToEntity(mockCrm.Object, context);

            entity.Should().BeNull();
            mockService.Verify(m => m.NewEntity("msevtmgt_eventregistration", context), Times.Never);
        }
        public void Run_WithTeachingEventRegistrationsOnSuccess_SavesTeachingEventRegistrations()
        {
            var candidateId  = Guid.NewGuid();
            var registration = new TeachingEventRegistration()
            {
                EventId = Guid.NewGuid()
            };

            _candidate.TeachingEventRegistrations.Add(registration);
            _mockContext.Setup(m => m.GetRetryCount(null)).Returns(0);
            _mockCrm.Setup(mock => mock.Save(It.IsAny <Candidate>())).Callback <BaseModel>(c => c.Id = candidateId);

            _job.Run(_candidate.SerializeChangeTracked(), null);

            registration.CandidateId = candidateId;
            _mockCrm.Verify(mock => mock.Save(It.Is <TeachingEventRegistration>(r => IsMatch(registration, r))), Times.Once);
            _metrics.HangfireJobQueueDuration.WithLabels(new[] { "UpsertCandidateJob" }).Count.Should().Be(1);
        }