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); }
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); }
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); } } }