public void IndexMergerShouldNotTakeIntoAccountExpressionVariableName() { var index1 = new Person_ByName_1(); var index2 = new Person_ByName_2(); var index3 = new Person_ByName_3(); var indexDefinition1 = index1.CreateIndexDefinition(); var indexDefinition2 = index2.CreateIndexDefinition(); var indexDefinition3 = index3.CreateIndexDefinition(); var merger = new IndexMerger( new Dictionary <string, IndexDefinition> { { indexDefinition1.Name, indexDefinition1 }, { indexDefinition2.Name, indexDefinition2 } }); var results = merger.ProposeIndexMergeSuggestions(); Assert.Equal(1, results.Suggestions.Count); Assert.Equal(1, results.Suggestions[0].CanDelete.Count); merger = new IndexMerger( new Dictionary <string, IndexDefinition> { { indexDefinition1.Name, indexDefinition1 }, { indexDefinition3.Name, indexDefinition3 } }); results = merger.ProposeIndexMergeSuggestions(); Assert.Equal(1, results.Suggestions.Count); Assert.Equal(1, results.Suggestions[0].CanDelete.Count); }
public async Task RecreatingIndexesToARecreatedDatabase() { var path = NewDataPath(); using (var store = GetDocumentStore(new Options { ModifyDatabaseName = x => Path.GetFileName(path), Path = path })) { var index = new Person_ByName_1(); store.ExecuteIndex(index); var indexes = await store.Maintenance.SendAsync(new GetIndexesOperation(0, 128)); Assert.True(indexes.Length > 0); // We want to keep the files on the disk await store.Maintenance.Server.SendAsync(new DeleteDatabasesOperation(store.Database, false)); var sp = new Stopwatch(); sp.Start(); while (sp.Elapsed <= TimeSpan.FromSeconds(5)) { try { store.Maintenance.Send(new GetStatisticsOperation()); } catch (DatabaseDisabledException) { } catch (DatabaseDoesNotExistException) { break; } } sp.Reset(); await store.Maintenance.Server.SendAsync(new CreateDatabaseOperation(new DatabaseRecord { DatabaseName = store.Database, Settings = new Dictionary <string, string> { { "DataDir", path }, { "RunInMemory", false.ToString() } } })); sp.Start(); while (sp.Elapsed <= TimeSpan.FromSeconds(10)) { var stats = store.Maintenance.Send(new GetStatisticsOperation()); if (stats?.Indexes.Length > 0) { break; } } sp.Stop(); indexes = store.Maintenance.Send(new GetIndexesOperation(0, 128)); Assert.True(indexes.Length > 0); } }