public async Task ProcessEventDoesNotStoreEngagementEventOnSharepoint() { var mockSharepointManager = new MockSharepointManager(); var courseCatalog = new MockSharepointCourseCatalog(); string courseId = "COMP0101"; string listToStoreEvents = "Attendance Events"; courseCatalog.mockCatalog.Add(courseId, new CourseCatalogType { ListName = listToStoreEvents, JoinWebUrl = null }); mockSharepointManager.CreateList(listToStoreEvents, "", new List <string>()); var eventAggregator = new EventAggregator(mockSharepointManager, courseCatalog, new InMemoryLogger <EventAggregator>()); StudentEvent engagementEvent = new StudentEvent { CourseID = courseId, EventType = EventType.Engagement, ActivityType = "Video", ActivityName = "Introductory Lesson", Timestamp = DateTime.UtcNow, Student = new Student { Email = "*****@*****.**", FirstName = "a", LastName = "b", ID = " 0" } }; await eventAggregator.ProcessEvent(engagementEvent); var itemsInSharepointList = await mockSharepointManager.GetItemsFromList(listToStoreEvents); Assert.Empty(itemsInSharepointList); }
public async Task ProcessEventIgnoresAttendanceEventIfNotFoundInCourseCatalog() { var mockSharepointManager = new MockSharepointManager(); var emptyCourseCatalog = new MockSharepointCourseCatalog(); const string listToStoreEvents = "Attendance Events"; mockSharepointManager.CreateList(listToStoreEvents, "", new List <string>()); const string courseIdNotInCatalog = "COMP0101"; var eventAggregator = new EventAggregator(mockSharepointManager, emptyCourseCatalog, new InMemoryLogger <EventAggregator>()); StudentEvent eventToStore = new StudentEvent { CourseID = courseIdNotInCatalog, EventType = EventType.Attendance, ActivityType = "Video", ActivityName = "Introductory Lesson", Timestamp = DateTime.UtcNow, Student = new Student { Email = "*****@*****.**", FirstName = "a", LastName = "b", ID = " 0" } }; await eventAggregator.ProcessEvent(eventToStore); var itemsInSharepointList = await mockSharepointManager.GetItemsFromList(listToStoreEvents); Assert.Empty(itemsInSharepointList); }
public async Task ProcessEventForgetToCreateList() { var mockSharepointManager = new MockSharepointManager(); var courseCatalog = new MockSharepointCourseCatalog(); string courseId = "COMP0101"; string listToStoreEvents = "Attendance Events"; courseCatalog.mockCatalog.Add(courseId, new CourseCatalogType { ListName = listToStoreEvents, JoinWebUrl = null }); bool eventListExist = mockSharepointManager.CheckListExists(listToStoreEvents); Assert.False(eventListExist); var eventAggregator = new EventAggregator(mockSharepointManager, courseCatalog, new InMemoryLogger <EventAggregator>()); StudentEvent eventToStore = new StudentEvent { CourseID = courseId, EventType = EventType.Attendance, ActivityType = "Video", ActivityName = "Introductory Lesson", Timestamp = DateTime.UtcNow, Student = new Student { Email = "*****@*****.**", FirstName = "a", LastName = "b", ID = " 0" } }; await eventAggregator.ProcessEvent(eventToStore); bool afterProcessEventListExist = mockSharepointManager.CheckListExists(listToStoreEvents); Assert.True(afterProcessEventListExist); }
public async Task ProcessTeamsMeeting() { var _graphHelper = new MockGraphHelper(); var _logger = new InMemoryLogger <MsGraphAdapter>(); var _courseCatalog = new MockSharepointCourseCatalog(); var _eventAggregator = new MockEventAggregator(); var _graphAdapter = new MsGraphAdapter(_eventAggregator, _logger, _graphHelper, _courseCatalog); string courseId = "COMP0102"; string listToStoreEvents = "Attendance Events"; _courseCatalog.mockCatalog.Add(courseId, new CourseCatalogType { ListName = listToStoreEvents, JoinWebUrl = "testjoinweburl.com" }); // JoinWebUrl does not exist in course catalog var callIdJoinWebUrlNotExist = "22222"; await _graphAdapter.ProcessEvents(callIdJoinWebUrlNotExist); Assert.Empty(_eventAggregator.processedEvents); //Only organiser is in meeting var callIdJoinWebUrlOrganiserOnly = "44444"; await _graphAdapter.ProcessEvents(callIdJoinWebUrlOrganiserOnly); Assert.Empty(_eventAggregator.processedEvents); // JoinWebUrl exists in course catalog var callIdJoinWebUrl = "33333"; await _graphAdapter.ProcessEvents(callIdJoinWebUrl); Assert.Single(_eventAggregator.processedEvents); //Ensure event organiser data isn't sent to event aggregator Assert.True(1 == _eventAggregator.processedEvents.Count()); //Correct student data is stored var processedEvent = _eventAggregator.processedEvents[0]; Assert.Equal("COMP0102", processedEvent.CourseID); Assert.Equal(EventType.Attendance, processedEvent.EventType); Assert.Equal("Meeting", processedEvent.ActivityType); Assert.Equal("Weekly Lecture", processedEvent.ActivityName); Assert.Equal("*****@*****.**", processedEvent.Student.Email); Assert.Equal("John", processedEvent.Student.FirstName); Assert.Equal("Doe", processedEvent.Student.LastName); Assert.Equal("00000", processedEvent.Student.ID); }
public async Task ProcessTeamsMeetingWithoutJoinWebUrl() { var _graphHelper = new MockGraphHelper(); var _logger = new InMemoryLogger <MsGraphAdapter>(); var _courseCatalog = new MockSharepointCourseCatalog(); var _eventAggregator = new MockEventAggregator(); var _graphAdapter = new MsGraphAdapter(_eventAggregator, _logger, _graphHelper, _courseCatalog); var callId = "11111"; string courseId = "COMP0102"; string listToStoreEvents = "Attendance Events"; _courseCatalog.mockCatalog.Add(courseId, new CourseCatalogType { ListName = listToStoreEvents, JoinWebUrl = "testjoinweburl.com" }); await _graphAdapter.ProcessEvents(callId); Assert.Empty(_eventAggregator.processedEvents); }
public async Task ProcessEventStoresAttendanceEventOnSharepoint() { var mockSharepointManager = new MockSharepointManager(); var courseCatalog = new MockSharepointCourseCatalog(); string courseId = "COMP0101"; string listToStoreEvents = "Attendance Events"; courseCatalog.mockCatalog.Add(courseId, listToStoreEvents); mockSharepointManager.CreateList(listToStoreEvents, "", new List <string>()); var eventAggregator = new EventAggregator(mockSharepointManager, courseCatalog, new InMemoryLogger <EventAggregator>()); StudentEvent eventToStore = new StudentEvent { CourseID = courseId, EventType = EventType.Attendance, ActivityType = "Video", ActivityName = "Introductory Lesson", Timestamp = DateTime.UtcNow, Student = new Student { Email = "*****@*****.**", FirstName = "a", LastName = "b", ID = " 0" } }; await eventAggregator.ProcessEvent(eventToStore); var itemsInSharepointList = await mockSharepointManager.GetItemsFromList(listToStoreEvents); Assert.Single(itemsInSharepointList); var itemInList = itemsInSharepointList[0]; Assert.Equal(eventToStore.CourseID, (string)itemInList["CourseID"]); Assert.Equal(eventToStore.Student.Email, (string)itemInList["StudentEmail"]); Assert.Equal(eventToStore.EventType.ToString(), (string)itemInList["EventType"]); Assert.Equal(eventToStore.ActivityType, (string)itemInList["ActivityType"]); Assert.Equal(eventToStore.ActivityName, (string)itemInList["ActivityName"]); Assert.Equal(eventToStore.Timestamp, (DateTime)itemInList["Timestamp"]); }