예제 #1
0
        public async Task UpdateInMemoryMappingGetsLatestCopyOfUnderlyingSharepointList()
        {
            var courseCatalogListName   = "CourseCatalog";
            SharepointSettings settings = SharepointSettingsWithCourseCatalogName(courseCatalogListName);
            var mockSharepointManager   = new MockSharepointManager();

            mockSharepointManager.CreateList(courseCatalogListName, "", new List <string>());

            string courseIdThatWillBeDeleted = "COMP0100";
            var    itemThatWillBeDeleted     = ListItemWithCourseIdAndListName(courseIdThatWillBeDeleted, "any", "any");
            await mockSharepointManager.AddItemToList(courseCatalogListName, itemThatWillBeDeleted);

            var courseCatalog = new SharepointCourseCatalog(Options.Create(settings), new InMemoryLogger <SharepointCourseCatalog>(), mockSharepointManager);

            // simulate deleting an item from the sharepoint list
            mockSharepointManager.mockEventList[courseCatalogListName].Remove(itemThatWillBeDeleted);
            // simulate adding an item to the sharepoint list
            string courseIdThatWillBeAdded = "COMP0102";
            string expectedListName        = "expectedListName";
            string expectedJoinWebUrl      = "expectedJoinWebUrl";
            await mockSharepointManager.AddItemToList(courseCatalogListName, ListItemWithCourseIdAndListName(courseIdThatWillBeAdded, expectedListName, expectedJoinWebUrl));

            // update the catalog after modifying the underlying sharepoint list
            await courseCatalog.UpdateInMemoryMapping();

            Assert.Throws <KeyNotFoundException>(() => courseCatalog.GetListNameForCourse(courseIdThatWillBeDeleted));
            string actualListNameOfAddedEntry = courseCatalog.GetListNameForCourse(courseIdThatWillBeAdded);

            Assert.Equal(expectedListName, actualListNameOfAddedEntry);
            string actualCourseId = courseCatalog.GetCourseIDForJoinWebURL(expectedJoinWebUrl);

            Assert.Equal(courseIdThatWillBeAdded, actualCourseId);
        }
예제 #2
0
        public void ConstructorCreatesCourseCatalogListIfNotExist()
        {
            var courseCatalogListName = "CourseCatalog";
            var settings = SharepointSettingsWithCourseCatalogName(courseCatalogListName);
            var mockSharepointManager = new MockSharepointManager();

            var courseCatalog = new SharepointCourseCatalog(Options.Create(settings), new InMemoryLogger <SharepointCourseCatalog>(), mockSharepointManager);


            bool catalogListWasCreated = mockSharepointManager.CheckListExists(courseCatalogListName);

            Assert.True(catalogListWasCreated);
        }
 public CourseCatalogUpdater(ILogger <CourseCatalogUpdater> logger, SharepointCourseCatalog catalog)
 {
     _logger  = logger;
     _catalog = catalog;
 }
예제 #4
0
 public CourseCatalogUpdater(ILogger <CourseCatalogUpdater> logger, SharepointCourseCatalog catalog, IOptions <SharepointSettings> sharepointSettings)
 {
     _logger           = logger;
     _catalog          = catalog;
     _updateIntervalMs = 1000 * sharepointSettings.Value.CourseCatalogUpdateInterval;
 }