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 NotificationsController(IOptions <MSGraphSettings> msGraphSettings, ILogger <GraphHelper> logger, MsGraphAdapter msGraphAdapter) { this._config = msGraphSettings.Value; this._logger = logger; _graphAdapter = msGraphAdapter; }