示例#1
0
        public void SetUp()
        {
            // Force initialization in ILRepacked SIL.WritingSystems assembly,
            // even if a referenced SIl.WritingSystems assembly somewhere down
            // the dependency chain, that we won't be using, was initialized.
            if (!Sldr.IsInitialized)
            {
                Sldr.Initialize();
            }

            FwRegistryHelper.Initialize();
            m_threadHelper = new ThreadHelper();
            var ui        = new DummyLcmUI(m_threadHelper);
            var projectId = new ParatextLexiconPluginProjectId(BackendProviderType.kMemoryOnly, "Test.fwdata");

            m_cache = LcmCache.CreateCacheWithNewBlankLangProj(projectId, "en", "fr", "en", ui,
                                                               ParatextLexiconPluginDirectoryFinder.LcmDirectories, new LcmSettings());
            NonUndoableUnitOfWorkHelper.Do(m_cache.ActionHandlerAccessor, () =>
            {
                m_cache.ServiceLocator.WritingSystems.AddToCurrentAnalysisWritingSystems(m_cache.ServiceLocator.WritingSystemManager.Get("fr"));
                m_cache.ServiceLocator.WritingSystems.AddToCurrentVernacularWritingSystems(m_cache.ServiceLocator.WritingSystemManager.Get("en"));
                m_cache.LangProject.MorphologicalDataOA.ParserParameters = "<ParserParameters><XAmple><MaxNulls>1</MaxNulls><MaxPrefixes>5</MaxPrefixes><MaxInfixes>1</MaxInfixes><MaxSuffixes>5</MaxSuffixes><MaxInterfixes>0</MaxInterfixes><MaxAnalysesToReturn>10</MaxAnalysesToReturn></XAmple><ActiveParser>XAmple</ActiveParser></ParserParameters>";
            });
            m_lexicon = new FdoLexicon("Test", "FieldWorks:Test", m_cache, m_cache.DefaultVernWs);
        }
示例#2
0
        public void SetUp()
        {
            m_mediator      = new Mediator();
            m_propertyTable = new PropertyTable(m_mediator);
            var st = StringTable.Table;             // Make sure it is loaded.

            m_cache = LcmCache.CreateCacheWithNewBlankLangProj(
                new TestProjectId(BackendProviderType.kMemoryOnly, null), "en", "en", "en", new DummyLcmUI(), FwDirectoryFinder.LcmDirectories, new LcmSettings());
            m_propertyTable.SetProperty("cache", m_cache, true);
        }
示例#3
0
        public void TestSetup()
        {
            Cache = LcmCache.CreateCacheWithNewBlankLangProj(new TestProjectId(BackendProviderType.kMemoryOnly, null),
                                                             "en", "fr", "en", new DummyLcmUI(), FwDirectoryFinder.LcmDirectories, new LcmSettings());
            var loader = new XmlList();

            loader.ImportList(Cache.LangProject, "PartsOfSpeech", Path.Combine(FwDirectoryFinder.TemplateDirectory, "POS.xml"),
                              new DummyProgressDlg());
            // This allows tests to do any kind of data changes without worrying about starting a UOW.
            Cache.ActionHandlerAccessor.BeginUndoTask("Undo doing stuff", "Redo doing stuff");
        }
        public void PortAllBEPsTestsUsingAnUnopenedSource(
            [Values(BackendProviderType.kXMLWithMemoryOnlyWsMgr)]
            BackendProviderType sourceType,
            [Values(BackendProviderType.kXMLWithMemoryOnlyWsMgr, BackendProviderType.kMemoryOnly)]
            BackendProviderType targetType)
        {
            var path = Path.Combine(Path.GetTempPath(), "FieldWorksTest");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            var sourceBackendStartupParameters = GenerateBackendStartupParameters(false, sourceType);
            var targetBackendStartupParameters = GenerateBackendStartupParameters(true, targetType);

            var sourceGuids = new List <Guid>();

            // Set up data source
            var sourceProjectId = new TestProjectId(sourceBackendStartupParameters.ProjectId.Type,
                                                    sourceBackendStartupParameters.ProjectId.Path);

            using (LcmCache sourceCache = LcmCache.CreateCacheWithNewBlankLangProj(sourceProjectId, "en", "fr", "en", new DummyLcmUI(),
                                                                                   m_lcmDirectories, new LcmSettings()))
            {
                // BEP is a singleton, so we shouldn't call Dispose on it. This will be done
                // by service locator.
                var sourceDataSetup = GetMainBEPInterface(sourceCache);
                sourceCache.ServiceLocator.GetInstance <IUndoStackManager>().Save();                // persist the new db so we can reopen it.
                sourceDataSetup.LoadDomain(BackendBulkLoadDomain.All);
                sourceGuids.AddRange(GetAllCmObjects(sourceCache).Select(obj => obj.Guid));         // Collect all source Guids
            }

            // Migrate source data to new BEP.
            IThreadedProgress progressDlg = new DummyProgressDlg();
            var targetProjectId           = new TestProjectId(targetBackendStartupParameters.ProjectId.Type, null);

            using (var targetCache = LcmCache.CreateCacheWithNoLangProj(targetProjectId, "en", new DummyLcmUI(),
                                                                        m_lcmDirectories, new LcmSettings()))
            {
                // BEP is a singleton, so we shouldn't call Dispose on it. This will be done
                // by service locator.
                var targetDataSetup = GetMainBEPInterface(targetCache);
                targetDataSetup.InitializeFromSource(new TestProjectId(targetBackendStartupParameters.ProjectId.Type,
                                                                       targetBackendStartupParameters.ProjectId.Path), sourceBackendStartupParameters, "en", progressDlg);
                targetDataSetup.LoadDomain(BackendBulkLoadDomain.All);
                CompareResults(sourceGuids, targetCache);
            }
            sourceGuids.Clear();
        }
        public void PortAllBEPsTestsUsingAnAlreadyOpenedSource(
            [Values(BackendProviderType.kXMLWithMemoryOnlyWsMgr, BackendProviderType.kMemoryOnly)]
            BackendProviderType sourceType,
            [Values(BackendProviderType.kXMLWithMemoryOnlyWsMgr, BackendProviderType.kMemoryOnly)]
            BackendProviderType targetType)
        {
            var sourceBackendStartupParameters = GenerateBackendStartupParameters(false, sourceType);
            var targetBackendStartupParameters = GenerateBackendStartupParameters(true, targetType);

            // Set up data source, but only do it once.
            var sourceGuids     = new List <Guid>();
            var sourceProjectId = new TestProjectId(sourceBackendStartupParameters.ProjectId.Type,
                                                    sourceBackendStartupParameters.ProjectId.Path);

            using (var sourceCache = LcmCache.CreateCacheWithNewBlankLangProj(sourceProjectId, "en", "fr", "en", new DummyLcmUI(),
                                                                              m_lcmDirectories, new LcmSettings()))
            {
                // BEP is a singleton, so we shouldn't call Dispose on it. This will be done
                // by service locator.
                var sourceDataSetup = GetMainBEPInterface(sourceCache);
                // The source is created ex nihilo.
                sourceDataSetup.LoadDomain(sourceBackendStartupParameters.BulkLoadDomain);
                sourceGuids.AddRange(GetAllCmObjects(sourceCache).Select(obj => obj.Guid));                 // Collect all source Guids

                DeleteDatabase(targetBackendStartupParameters);

                // Migrate source data to new BEP.
                var targetProjectId = new TestProjectId(targetBackendStartupParameters.ProjectId.Type,
                                                        targetBackendStartupParameters.ProjectId.Path);
                using (var targetCache = LcmCache.CreateCacheCopy(targetProjectId, "en", new DummyLcmUI(),
                                                                  m_lcmDirectories, new LcmSettings(), sourceCache))
                {
                    // BEP is a singleton, so we shouldn't call Dispose on it. This will be done
                    // by service locator.
                    var targetDataSetup = GetMainBEPInterface(targetCache);
                    targetDataSetup.LoadDomain(BackendBulkLoadDomain.All);

                    CompareResults(sourceGuids, targetCache);
                }
            }
        }