public async Task ProcessEventsSetsEventTypeToAttendanceForZoomOrTeamsEvents() { var eventAggregator = new MockEventAggregator(); var moodleAdapter = new MoodleAdapter(eventAggregator, new MockIdentityResolver(), CreateLogger()); CaliperActor caliperActor = new CaliperActor { Id = "1", ActorType = "http://purl.imsglobal.org/caliper/v1/lis/Person", Name = "John Doe", Extensions = new CaliperActorExtensions { Email = "*****@*****.**" } }; string zoomActivityType = "zoom"; string studentRole = "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner"; CaliperEventBatchDto zoomEvents = EventBatch(caliperActor, "any", "http://purl.imsglobal.org/caliper/v1/lis/" + zoomActivityType, "COMP0101", MoodleAdapter.COURSE_GROUP_TYPE, studentRole); await moodleAdapter.ProcessEvents(zoomEvents); Assert.Single(eventAggregator.processedEvents); var processedEvent = eventAggregator.processedEvents[0]; Assert.Equal(EventType.Attendance, processedEvent.EventType); }
private static CaliperEventBatchDto EventBatch(CaliperActor actor, string objectName, string objectType, string groupName, string groupType, string actorRole) { return(new CaliperEventBatchDto { Data = new List <CaliperEventDto> { new CaliperEventDto { Actor = actor, Object = new CaliperObject { Id = "any", ObjectType = objectType, Name = objectName }, Group = new CaliperGroup { Id = "any", Name = groupName, GroupType = groupType }, Membership = new CaliperActorMembership { Roles = new List <string> { actorRole } }, Action = "any", Type = "any", EventTime = DateTime.UtcNow } } }); }
public async Task ProcessEventsAcceptsEventsAboutStudentsInteractingWithCourses() { var eventAggregator = new MockEventAggregator(); var moodleAdapter = new MoodleAdapter(eventAggregator); CaliperActor caliperActor = new CaliperActor { Id = "1", ActorType = "http://purl.imsglobal.org/caliper/v1/lis/Person", Name = "John Doe", Extensions = new CaliperActorExtensions { Email = "*****@*****.**" } }; string activityType = "survey"; string studentRole = "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner"; CaliperEventBatchDto eventsWithStudentRole = EventBatch(caliperActor, "any", "http://purl.imsglobal.org/caliper/v1/lis/" + activityType, "COMP0101", MoodleAdapter.COURSE_GROUP_TYPE, studentRole); await moodleAdapter.ProcessEvents(eventsWithStudentRole); Assert.Single(eventAggregator.processedEvents); var processedEvent = eventAggregator.processedEvents[0]; CaliperEventDto submittedEvent = eventsWithStudentRole.Data[0]; Assert.Equal(submittedEvent.Actor.Name, processedEvent.Student.FirstName + " " + processedEvent.Student.LastName); Assert.Equal(submittedEvent.Actor.Extensions.Email, processedEvent.Student.Email); Assert.Equal(submittedEvent.Actor.Id, processedEvent.Student.ID); Assert.Equal(submittedEvent.Object.Name, processedEvent.ActivityName); Assert.Equal(activityType, processedEvent.ActivityType); Assert.Equal(submittedEvent.Group.Name, processedEvent.CourseID); Assert.Equal(submittedEvent.EventTime, processedEvent.Timestamp); }
public async Task ProcessEventsIgnoresEventsIfActorNotStudent() { var eventAggregator = new MockEventAggregator(); var moodleAdapter = new MoodleAdapter(eventAggregator, new MockIdentityResolver(), CreateLogger()); CaliperActor caliperActor = new CaliperActor { Id = "1", ActorType = "http://purl.imsglobal.org/caliper/v1/lis/Person", Name = "John Doe", Extensions = new CaliperActorExtensions { Email = "*****@*****.**" } }; string instructorRole = "http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor"; CaliperEventBatchDto eventsWithInstructorRole = EventBatch(caliperActor, "any", "http://purl.imsglobal.org/caliper/v1/lis/url", "COMP0101", MoodleAdapter.COURSE_GROUP_TYPE, instructorRole); await moodleAdapter.ProcessEvents(eventsWithInstructorRole); Assert.Empty(eventAggregator.processedEvents); }
public async Task ProcessEventsIgnoresEventIfStudentIdCouldNotBeResolvedThroughEmail() { var eventAggregator = new MockEventAggregator(); var failingIdentityResolver = new FailingIdentityResolver(); var moodleAdapter = new MoodleAdapter(eventAggregator, failingIdentityResolver, CreateLogger()); CaliperActor caliperActor = new CaliperActor { Id = "1", ActorType = "http://purl.imsglobal.org/caliper/v1/lis/Person", Name = "John Doe", Extensions = new CaliperActorExtensions { Email = "*****@*****.**" } }; string activityType = "survey"; string studentRole = "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner"; CaliperEventBatchDto eventsThatShouldBeIgnored = EventBatch(caliperActor, "any", "http://purl.imsglobal.org/caliper/v1/lis/" + activityType, "COMP0101", MoodleAdapter.COURSE_GROUP_TYPE, studentRole); await moodleAdapter.ProcessEvents(eventsThatShouldBeIgnored); Assert.Empty(eventAggregator.processedEvents); }