From 2f66994aeb63409e0ee5d3e4b599f782fc54cc40 Mon Sep 17 00:00:00 2001 From: Ayende Rahien Date: Tue, 18 Feb 2014 11:57:06 +0200 Subject: [PATCH] Fixing tests - was getting error during indexing. --- .../Tasks/TouchMissingReferenceDocumentTask.cs | 13 ++++++++++++- Raven.Tests.Helpers/RavenTestBase.cs | 5 ++++- Raven.Tests/Issues/RavenDB_1280.cs | 2 +- Raven.Tryouts/Program.cs | 5 +++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Raven.Database/Tasks/TouchMissingReferenceDocumentTask.cs b/Raven.Database/Tasks/TouchMissingReferenceDocumentTask.cs index 2cb0d1102eda..26ad1ef14174 100644 --- a/Raven.Database/Tasks/TouchMissingReferenceDocumentTask.cs +++ b/Raven.Database/Tasks/TouchMissingReferenceDocumentTask.cs @@ -29,7 +29,18 @@ public override void Merge(Task task) { var t = (TouchMissingReferenceDocumentTask)task; - MissingReferences = MissingReferences.Union(t.MissingReferences).ToDictionary(x => x.Key, x => x.Value); + foreach (var kvp in t.MissingReferences) + { + HashSet set; + if (MissingReferences.TryGetValue(kvp.Key, out set) == false) + { + MissingReferences[kvp.Key] = kvp.Value; + } + else + { + set.UnionWith(kvp.Value); + } + } } public override void Execute(WorkContext context) diff --git a/Raven.Tests.Helpers/RavenTestBase.cs b/Raven.Tests.Helpers/RavenTestBase.cs index d4ae12ef6bb9..2ae2f669c060 100644 --- a/Raven.Tests.Helpers/RavenTestBase.cs +++ b/Raven.Tests.Helpers/RavenTestBase.cs @@ -254,7 +254,10 @@ public static void WaitForIndexing(IDocumentStore store, string db = null,TimeSp var databaseCommands = store.DatabaseCommands; if (db != null) databaseCommands = databaseCommands.ForDatabase(db); - Assert.True(SpinWait.SpinUntil(() => databaseCommands.GetStatistics().StaleIndexes.Length == 0, timeout ?? TimeSpan.FromSeconds(20))); + bool spinUntil = SpinWait.SpinUntil(() => databaseCommands.GetStatistics().StaleIndexes.Length == 0, timeout ?? TimeSpan.FromSeconds(20)); + if (spinUntil == false) + WaitForUserToContinueTheTest((EmbeddableDocumentStore) store); + Assert.True(spinUntil); } public static void WaitForIndexing(DocumentDatabase db) diff --git a/Raven.Tests/Issues/RavenDB_1280.cs b/Raven.Tests/Issues/RavenDB_1280.cs index 523de5e506d8..23003d4c1f21 100644 --- a/Raven.Tests/Issues/RavenDB_1280.cs +++ b/Raven.Tests/Issues/RavenDB_1280.cs @@ -75,7 +75,7 @@ public void CanHandleMultipleMissingDocumentsInMultipleIndexes() session.SaveChanges(); } - WaitForIndexing(store); + WaitForIndexing(store, timeout: TimeSpan.FromSeconds(10)); } } diff --git a/Raven.Tryouts/Program.cs b/Raven.Tryouts/Program.cs index 5da8be762497..855e0a2a21ec 100644 --- a/Raven.Tryouts/Program.cs +++ b/Raven.Tryouts/Program.cs @@ -1,4 +1,5 @@ using System; +using Raven.Tests.Indexes; using Raven.Tests.Issues; using Xunit; @@ -12,9 +13,9 @@ private static void Main(string[] args) { Environment.SetEnvironmentVariable("run", string.Format("{0:0000}", i)); Console.WriteLine(i); - using (var x = new RavenDB_1041()) + using (var x = new RavenDB_1280()) { - x.CanWaitForReplication().Wait(); + x.CanHandleMultipleMissingDocumentsInMultipleIndexes(); } } }