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