public void ExportImportTest() { // Arrange var exportContext = new ExportImportContext(); var autocompletesCount = 25; var relatedQueriesCount = 49; exportContext.SetupAutocompletes(autocompletesCount); exportContext.SetupRelatedQueries(relatedQueriesCount); var exporters = new List <IExporter> { exportContext.AutocompleteExporter, exportContext.RelatedQueryExporter }; var exportManager = new ExportManager(exporters, exportContext.SiteIdentityLoaderMock.Object, exportContext.Settings); var importContext = new ExportImportContext(); importContext.SetupAutocompletes(0); importContext.SetupRelatedQueries(0); var importers = new List <IImporter> { importContext.AutocompleteImporter, importContext.RelatedQueryImporter }; var importManager = new ImportManager(importers); // Act MemoryStream exportStream = new MemoryStream(); exportManager.ExportToStream(new List <string> { exportContext.AutocompleteExporter.EntityKey, exportContext.RelatedQueryExporter.EntityKey }, Helpers.AllSitesId, Helpers.AllLanguages, exportStream); var importStream = new MemoryStream(exportStream.ToArray()); importManager.ImportFromStream("MySite", importStream); // Assert Assert.Equal(autocompletesCount, importContext.Autocompletes.Count); Assert.Equal(relatedQueriesCount, importContext.RelatedQueries.Count); for (int i = 0; i < autocompletesCount; i++) { Assert.Equal(exportContext.Autocompletes[i].Id, importContext.Autocompletes[i].Id); Assert.Equal(exportContext.Autocompletes[i].Query, importContext.Autocompletes[i].Query); Assert.Equal(exportContext.Autocompletes[i].Priority, importContext.Autocompletes[i].Priority); Assert.NotEqual(exportContext.Autocompletes[i].Tags, importContext.Autocompletes[i].Tags); Assert.Equal("siteid:MySite", importContext.Autocompletes[i].Tags.First()); } for (int i = 0; i < relatedQueriesCount; i++) { Assert.Equal(exportContext.RelatedQueries[i].Id, importContext.RelatedQueries[i].Id); Assert.Equal(exportContext.RelatedQueries[i].Query, importContext.RelatedQueries[i].Query); Assert.Equal(exportContext.RelatedQueries[i].Priority, importContext.RelatedQueries[i].Priority); Assert.Equal(exportContext.RelatedQueries[i].Suggestion, importContext.RelatedQueries[i].Suggestion); Assert.NotEqual(exportContext.RelatedQueries[i].Tags, importContext.RelatedQueries[i].Tags); Assert.Equal("siteid:MySite", importContext.RelatedQueries[i].Tags.First()); } }
public void ExportImportTest() { // Arrange var exportContext = new ExportImportContext(); var autocompletesCount = 25; var relatedQueriesCount = 49; exportContext.SetupAutocompletes(autocompletesCount); exportContext.SetupRelatedQueries(relatedQueriesCount); var exporters = new List<IExporter> { exportContext.AutocompleteExporter, exportContext.RelatedQueryExporter }; var exportManager = new ExportManager(exporters, exportContext.SiteIdentityLoaderMock.Object, exportContext.Settings); var importContext = new ExportImportContext(); importContext.SetupAutocompletes(0); importContext.SetupRelatedQueries(0); var importers = new List<IImporter> { importContext.AutocompleteImporter, importContext.RelatedQueryImporter }; var importManager = new ImportManager(importers); // Act MemoryStream exportStream = new MemoryStream(); exportManager.ExportToStream(new List<string> { exportContext.AutocompleteExporter.EntityKey, exportContext.RelatedQueryExporter.EntityKey }, Helpers.AllSitesId, Helpers.AllLanguages, exportStream); var importStream = new MemoryStream(exportStream.ToArray()); importManager.ImportFromStream("MySite", importStream); // Assert Assert.Equal(autocompletesCount, importContext.Autocompletes.Count); Assert.Equal(relatedQueriesCount, importContext.RelatedQueries.Count); for (int i = 0; i < autocompletesCount; i++) { Assert.Equal(exportContext.Autocompletes[i].Id, importContext.Autocompletes[i].Id); Assert.Equal(exportContext.Autocompletes[i].Query, importContext.Autocompletes[i].Query); Assert.Equal(exportContext.Autocompletes[i].Priority, importContext.Autocompletes[i].Priority); Assert.NotEqual(exportContext.Autocompletes[i].Tags, importContext.Autocompletes[i].Tags); Assert.Equal("siteid:MySite", importContext.Autocompletes[i].Tags.First()); } for (int i = 0; i < relatedQueriesCount; i++) { Assert.Equal(exportContext.RelatedQueries[i].Id, importContext.RelatedQueries[i].Id); Assert.Equal(exportContext.RelatedQueries[i].Query, importContext.RelatedQueries[i].Query); Assert.Equal(exportContext.RelatedQueries[i].Priority, importContext.RelatedQueries[i].Priority); Assert.Equal(exportContext.RelatedQueries[i].Suggestion, importContext.RelatedQueries[i].Suggestion); Assert.NotEqual(exportContext.RelatedQueries[i].Tags, importContext.RelatedQueries[i].Tags); Assert.Equal("siteid:MySite", importContext.RelatedQueries[i].Tags.First()); } }
protected void ImportClick(object sender, EventArgs e) { if (Request.Files.Count == 0 || Request.Files[0].ContentLength == 0) { SystemMessageContainer.Message = "No file selected for import"; return; } var resultsMessage = _importManager.ImportFromStream(importSite.SelectedValue, Request.Files[0].InputStream); resultsMessage = !string.IsNullOrWhiteSpace(resultsMessage) ? resultsMessage.Replace(Environment.NewLine, "<br>") : "Import complete"; importResultsPanel.Visible = true; importResults.Text = resultsMessage; _log.DebugFormat("Import EPiServer Find optimizations complete. User: {0}. Site: {1}. Results: {2}.", PrincipalInfo.Current.Name, importSite.SelectedItem.Text, resultsMessage); }