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)."); }
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(); }
public void Validate_ChannelIdIsNullWhenExistingCandidate_HasNoError() { var registration = new TeachingEventRegistration() { Id = Guid.NewGuid(), ChannelId = null }; var result = _validator.TestValidate(registration); result.ShouldNotHaveValidationErrorFor("ChannelId"); }
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); }
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); }