public async Task TestCreateAndDeleteNavProvider() { var providersCount = 0; var testProviderName = "Test1"; providersCount = await this.DbContext.NavigationProvidersInfo.CountAsync(); var newProvider = new NavigationProviderInfo() { Name = testProviderName, Type = NavigationProviderType.File, ParametersRaw = "test" }; this.DbContext.NavigationProvidersInfo.Add(newProvider); await this.DbContext.SaveChangesAsync(); this.ConcreteContext.Entry(newProvider).State = EntityState.Detached; Assert.AreEqual(providersCount + 1, await this.DbContext.NavigationProvidersInfo.CountAsync()); var provider = await this.DbContext.NavigationProvidersInfo.SingleOrDefaultAsync(f => f.Name == testProviderName); Assert.IsNotNull(provider); this.DbContext.NavigationProvidersInfo.Delete(provider); await this.DbContext.SaveChangesAsync(); Assert.AreEqual(providersCount, await this.DbContext.NavigationProvidersInfo.CountAsync()); Assert.IsNull(await this.DbContext.NavigationProvidersInfo.SingleOrDefaultAsync(f => f.Name == testProviderName)); }
protected async Task <Document> GetOrCreateDocument() { var navProvider = await this.DbContext.NavigationProvidersInfo.FirstOrDefaultAsync(); if (navProvider == null) { navProvider = new NavigationProviderInfo() { Name = "Test", Type = NavigationProviderType.File, ParametersRaw = "test" }; this.DbContext.NavigationProvidersInfo.Add(navProvider); await this.DbContext.SaveChangesAsync(); } var document = await this.DbContext.DocumentRepository.FirstOrDefaultAsync(); if (document == null) { var folder = new DocumentFolder() { Name = "Temp", Path = "Test", NavigationProviderId = navProvider.Id }; document = new Document() { Name = "Temp", Path = "Test", Folder = folder }; this.DbContext.DocumentRepository.Add(document); await this.DbContext.SaveChangesAsync(); } return(document); }
public async Task TestAnalyzer() { var currentSectionId = await this.oneNoteApp.GetCurrentSectionIdAsync(); var sectionInfo = await this.oneNoteApp.GetHierarchyInfoAsync(currentSectionId); if (sectionInfo.Name != "Test Section") { throw new InvalidOperationException("Should check 'Test Section' only"); } var navigationProviderInfo = new NavigationProviderInfo() { Name = "Test OneNote provider", Type = NavigationProviderType.OneNote, Description = "Test OneNote navigation provider", IsReadonly = true, ParametersRaw = new OneNoteNavigationProviderParameters() { HierarchyItems = new List <OneNoteHierarchyInfo>() { new OneNoteHierarchyInfo() { Id = currentSectionId, Type = OneNoteHierarchyType.Section, Name = "Test section" } } } .GetParametersRaw() }; try { DbContext.NavigationProvidersInfo.Add(navigationProviderInfo); await DbContext.SaveChangesAsync(); var navigationProvider = ServiceProvider.GetService <OneNoteNavigationProvider>(); navigationProvider.SetParameters(navigationProviderInfo); var initialVersesCount = await DbContext.VerseEntryRepository.CountAsync(); var session = await this.analyzer.AnalyzeAsync(navigationProvider, new AnalyzerOptions() { Depth = AnalyzeDepth.All }); session.CreatedDocumentsCount.Should().Be(3); session.UpdatedDocumentsCount.Should().Be(0); session.DeletedDocumentsCount.Should().Be(0); Assert.AreEqual(initialVersesCount + 53, await DbContext.VerseEntryRepository.CountAsync()); } finally { await this.mediator.Send(new Middleware.NavigationProviders.Commands.Delete.Request(navigationProviderInfo.Id)); } }
public virtual void SetParameters(NavigationProviderInfo navigationProviderInfo) { if (navigationProviderInfo.Type != Type) { throw new InvalidOperationException($"Invalid navigationProviderInfo.Type: {navigationProviderInfo.Type} != {Type}"); } this.Id = navigationProviderInfo.Id; this.Name = navigationProviderInfo.Name; this.Description = navigationProviderInfo.Description; this.IsReadonly = navigationProviderInfo.IsReadonly; this.Parameters = NavigationProviderParametersBase.ReadParameters <P>(navigationProviderInfo.ParametersRaw); }
private async Task RunTestAsync(Func <string, string, FileNavigationProvider, Task> testAction) { var testFolder = Path.Combine("c:\\temp", Guid.NewGuid().ToString()); var testSubFolder = Path.Combine(testFolder, "testSubFolder", "testSubSubFolder"); Directory.CreateDirectory(testSubFolder); var navigationProviderInfo = new NavigationProviderInfo() { Name = "Test file provider", Type = NavigationProviderType.File, Description = "Test File navigation provider", IsReadonly = true, ParametersRaw = new FileNavigationProviderParameters() { FolderPaths = new List <string>() { testFolder } } .GetParametersRaw() }; try { DbContext.NavigationProvidersInfo.Add(navigationProviderInfo); await DbContext.SaveChangesAsync(); var navigationProvider = ServiceProvider.GetService <FileNavigationProvider>(); navigationProvider.SetParameters(navigationProviderInfo); await testAction(testFolder, testSubFolder, navigationProvider); } finally { await this.mediator.Send(new Middleware.NavigationProviders.Commands.Delete.Request(navigationProviderInfo.Id)); } }