public override void FixtureSetup()
		{
			base.FixtureSetup();

			var projectId = new TestProjectId(FDOBackendProviderType.kMemoryOnly, "Test.fwdata");
			m_cache = FdoCache.CreateCacheWithNewBlankLangProj(projectId, "en", "fr", "en", new DummyFdoUI(), FwDirectoryFinder.FdoDirectories, new FdoSettings());
			NonUndoableUnitOfWorkHelper.Do(m_cache.ActionHandlerAccessor,
				() => 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_retriever = new M3ParserModelRetriever(m_cache);
		}
		public void PortAllBEPsTestsUsingAnUnopenedSource(
			[Values(FDOBackendProviderType.kXML, FDOBackendProviderType.kDb4oClientServer)]
			FDOBackendProviderType sourceType,
			[Values(FDOBackendProviderType.kXML, FDOBackendProviderType.kDb4oClientServer, FDOBackendProviderType.kMemoryOnly)]
			FDOBackendProviderType 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>();

			DeleteDatabase(sourceBackendStartupParameters);
			DeleteDatabase(targetBackendStartupParameters);

			// Set up data source
			var projId = new TestProjectId(sourceBackendStartupParameters.ProjectId.Type,
													sourceBackendStartupParameters.ProjectId.Path);
			using (FdoCache sourceCache = FdoCache.CreateCacheWithNewBlankLangProj(
				projId, "en", "fr", "en", new DummyFdoUI(), FwDirectoryFinder.FdoDirectories, new FdoSettings()))
			{
				// 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();
			using (var targetCache = FdoCache.CreateCacheWithNoLangProj(
				new TestProjectId(targetBackendStartupParameters.ProjectId.Type, null), "en", new DummyFdoUI(), FwDirectoryFinder.FdoDirectories, new FdoSettings()))
			{
				// 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();
		}
		/// <summary />
		public void StartupExtant()
		{
			ProjectId = new TestProjectId(FDOBackendProviderType.kXML, Project);
			// This will throw an UnauthorizedAccessException because of the
			// StartupInternalWithDataMigrationIfNeeded() override below
			StartupExtantLanguageProject(ProjectId, false, new DummyProgressDlg());
		}
		/// <summary/>
		public void Startup()
		{
			ProjectId = new TestProjectId(FDOBackendProviderType.kXML, Project);
			StartupInternal(ModelVersion);
		}