Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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));
            }
        }