Skip to content

Commit d7fb275

Browse files
committed
Fix InvalidCastException in tests
1 parent 1bffc92 commit d7fb275

3 files changed

Lines changed: 18 additions & 15 deletions

File tree

Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerAdvancedTest.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
using Xtensive.Orm.Providers;
2121
using Xtensive.Orm.Rse.Providers;
2222
using Xtensive.Orm.Tests.Storage.Prefetch.Model;
23+
using GraphContainerDictionary = System.Collections.Generic.Dictionary<(Xtensive.Orm.Key key, Xtensive.Orm.Model.TypeInfo type), Xtensive.Orm.Internals.Prefetch.GraphContainer>;
2324

2425
namespace Xtensive.Orm.Tests.Storage.Prefetch
2526
{
@@ -103,9 +104,9 @@ public void ReferencedEntityHasBeenFullyLoadedBeforeTaskActivationTest()
103104

104105
prefetchManager.InvokePrefetch(order0Key, null, new PrefetchFieldDescriptor(EmployeeField, true, true));
105106
prefetchManager.InvokePrefetch(order1Key, null, new PrefetchFieldDescriptor(EmployeeField, true, true));
106-
var graphContainers = (HashSet<GraphContainer>) GraphContainersField.GetValue(prefetchManager);
107+
var graphContainers = (GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager);
107108
Assert.AreEqual(2, graphContainers.Count);
108-
Func<Key, ReferencedEntityContainer> taskSelector = containerKey => graphContainers
109+
Func<Key, ReferencedEntityContainer> taskSelector = containerKey => graphContainers.Values
109110
.Where(container => container.Key==containerKey)
110111
.SelectMany(container => container.ReferencedEntityContainers).Single();
111112
var entityContainer0 = taskSelector.Invoke(order0Key);
@@ -180,7 +181,7 @@ public void PrefetchEmptyEntitySetTest()
180181
var prefetchManager = (PrefetchManager) PrefetchProcessorField.GetValue(session.Handler);
181182
session.Handler.FetchEntityState(orderKey);
182183
prefetchManager.InvokePrefetch(orderKey, null, new PrefetchFieldDescriptor(DetailsField, null));
183-
var graphContainers = (HashSet<GraphContainer>) GraphContainersField.GetValue(prefetchManager);
184+
var graphContainers = (GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager);
184185
Assert.AreEqual(1, graphContainers.Count);
185186
prefetchManager.ExecuteTasks(true);
186187
EntitySetState actualState;
@@ -202,8 +203,8 @@ public void PrefetchReferencedEntityWhenTypeSpecifiedForOwnerIsInvalidTest()
202203
prefetchManager.InvokePrefetch(keyWithoutType, Domain.Model.Types[typeof (PersonalProduct)],
203204
new PrefetchFieldDescriptor(Domain.Model.Types[typeof (PersonalProduct)].Fields["Employee"],
204205
true, true));
205-
var graphContainers = (HashSet<GraphContainer>) GraphContainersField.GetValue(prefetchManager);
206-
var referencedEntityContainer = graphContainers
206+
var graphContainers = (GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager);
207+
var referencedEntityContainer = graphContainers.Values
207208
.Where(container => container.ReferencedEntityContainers!=null).Single()
208209
.ReferencedEntityContainers.Single();
209210
prefetchManager.ExecuteTasks(true);
@@ -218,10 +219,10 @@ public void DeletingOfTasksAtTransactionCommitOrRollbackTest()
218219

219220
using (var session = Domain.OpenSession()) {
220221
var prefetchManager = (PrefetchManager) PrefetchProcessorField.GetValue(session.Handler);
221-
HashSet<GraphContainer> graphContainers;
222+
GraphContainerDictionary graphContainers;
222223
using (var tx = session.OpenTransaction()) {
223224
prefetchManager.InvokePrefetch(orderKey, null, new PrefetchFieldDescriptor(CustomerField));
224-
graphContainers = (HashSet<GraphContainer>) GraphContainersField.GetValue(prefetchManager);
225+
graphContainers = (GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager);
225226
Assert.AreEqual(1, graphContainers.Count);
226227
tx.Complete();
227228
}
@@ -251,7 +252,7 @@ public void TasksAreExecutedAutomaticallyWhenCountLimitIsReachedTest()
251252
using (var session = Domain.OpenSession())
252253
using (var tx = session.OpenTransaction()) {
253254
var prefetchManager = (PrefetchManager) PrefetchProcessorField.GetValue(session.Handler);
254-
var graphContainers = (HashSet<GraphContainer>) GraphContainersField.GetValue(prefetchManager);
255+
var graphContainers = (GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager);
255256
var idField = BookType.Fields["Id"];
256257
for (var i = 1; i < keys.Count; i++) {
257258
prefetchManager.InvokePrefetch(keys[i - 1], null, new PrefetchFieldDescriptor(idField));

Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerBasicTest.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
using Xtensive.Orm.Rse;
2121
using Xtensive.Orm.Services;
2222
using Xtensive.Orm.Tests.Storage.Prefetch.Model;
23+
using GraphContainerDictionary = System.Collections.Generic.Dictionary<(Xtensive.Orm.Key key, Xtensive.Orm.Model.TypeInfo type), Xtensive.Orm.Internals.Prefetch.GraphContainer>;
2324

2425
namespace Xtensive.Orm.Tests.Storage.Prefetch
2526
{
@@ -380,12 +381,12 @@ public void ReferencedEntityByKnownForeignKeyPrefetchTest()
380381
var prefetchManager = (PrefetchManager) PrefetchProcessorField.GetValue(session.Handler);
381382

382383
prefetchManager.InvokePrefetch(orderKey, null, new PrefetchFieldDescriptor(EmployeeField, true, true));
383-
var graphContainers = (HashSet<GraphContainer>) GraphContainersField.GetValue(prefetchManager);
384+
var graphContainers = (GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager);
384385
Assert.AreEqual(2, graphContainers.Count);
385-
foreach (var container in graphContainers)
386+
foreach (var container in graphContainers.Values)
386387
Assert.IsNull(container.ReferencedEntityContainers);
387-
var orderContainer = graphContainers.Where(container => container.Key==orderKey).SingleOrDefault();
388-
var employeeContainer = graphContainers.Where(container => container.Key!=orderKey).SingleOrDefault();
388+
var orderContainer = graphContainers.Values.Where(container => container.Key==orderKey).SingleOrDefault();
389+
var employeeContainer = graphContainers.Values.Where(container => container.Key!=orderKey).SingleOrDefault();
389390
Assert.IsNotNull(orderContainer);
390391
Assert.IsNotNull(employeeContainer);
391392
prefetchManager.ExecuteTasks();
@@ -431,9 +432,9 @@ public void ReferencedEntityByNullAsForeignKeyPrefetchTest()
431432
var prefetchManager = (PrefetchManager) PrefetchProcessorField.GetValue(session.Handler);
432433
session.Handler.FetchEntityState(orderKey);
433434
prefetchManager.InvokePrefetch(orderKey, null, new PrefetchFieldDescriptor(EmployeeField, true, true));
434-
var taskContainers = (HashSet<GraphContainer>) GraphContainersField.GetValue(prefetchManager);
435+
var taskContainers = (GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager);
435436
Assert.AreEqual(1, taskContainers.Count);
436-
Assert.AreEqual(orderKey, taskContainers.Single().Key);
437+
Assert.AreEqual(orderKey, taskContainers.Values.Single().Key);
437438
}
438439
}
439440

Orm/Xtensive.Orm.Tests/Storage/Prefetch/PrefetchManagerTestBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using Xtensive.Orm.Tests.Storage.Prefetch.Model;
1818
using FieldInfo=Xtensive.Orm.Model.FieldInfo;
1919
using TypeInfo = Xtensive.Orm.Model.TypeInfo;
20+
using GraphContainerDictionary = System.Collections.Generic.Dictionary<(Xtensive.Orm.Key key, Xtensive.Orm.Model.TypeInfo type), Xtensive.Orm.Internals.Prefetch.GraphContainer>;
2021

2122
namespace Xtensive.Orm.Tests.Storage.Prefetch
2223
{
@@ -103,7 +104,7 @@ internal static void ValidateLoadedEntitySet(Key key, FieldInfo field, int count
103104

104105
internal GraphContainer GetSingleGraphContainer(PrefetchManager prefetchManager)
105106
{
106-
return ((IEnumerable<GraphContainer>) GraphContainersField.GetValue(prefetchManager)).Single();
107+
return ((GraphContainerDictionary) GraphContainersField.GetValue(prefetchManager)).Values.Single();
107108
}
108109

109110
internal static bool IsFieldKeyOrSystem(FieldInfo field)

0 commit comments

Comments
 (0)