From b9f518ead6bf4c4b03037413a541adf91e740f4c Mon Sep 17 00:00:00 2001 From: Smit Patel Date: Fri, 30 Aug 2019 18:45:27 -0700 Subject: [PATCH] InMemory: Last cleanup Close #16963 --- .../Query/Internal/InMemoryQueryExpression.cs | 10 ++++--- .../ComplexNavigationsQueryInMemoryTest.cs | 6 ---- ...ComplexNavigationsWeakQueryInMemoryTest.cs | 28 ++++++++----------- .../Query/GearsOfWarQueryInMemoryTest.cs | 14 +++++----- .../Query/SimpleQueryInMemoryTest.cs | 12 ++------ 5 files changed, 26 insertions(+), 44 deletions(-) diff --git a/src/EFCore.InMemory/Query/Internal/InMemoryQueryExpression.cs b/src/EFCore.InMemory/Query/Internal/InMemoryQueryExpression.cs index 5cdd06a4291..1f7bfec20bb 100644 --- a/src/EFCore.InMemory/Query/Internal/InMemoryQueryExpression.cs +++ b/src/EFCore.InMemory/Query/Internal/InMemoryQueryExpression.cs @@ -205,8 +205,9 @@ public virtual void PushdownIntoSubquery() var map = new Dictionary(); foreach (var property in GetAllPropertiesInHierarchy(entityProjection.EntityType)) { - var index = AddToProjection(entityProjection.BindProperty(property)); - map[property] = CreateReadValueExpression(property.ClrType, index, property); + var expressionToAdd = entityProjection.BindProperty(property); + var index = AddToProjection(expressionToAdd); + map[property] = CreateReadValueExpression(expressionToAdd.Type, index, property); } result[keyValuePair.Key] = new EntityProjectionExpression(entityProjection.EntityType, map); } @@ -267,8 +268,9 @@ public virtual void ApplyDefaultIfEmpty() var map = new Dictionary(); foreach (var property in GetAllPropertiesInHierarchy(entityProjection.EntityType)) { - var index = AddToProjection(entityProjection.BindProperty(property)); - map[property] = CreateReadValueExpression(property.ClrType.MakeNullable(), index, property); + var expressionToAdd = entityProjection.BindProperty(property); + var index = AddToProjection(expressionToAdd); + map[property] = CreateReadValueExpression(expressionToAdd.Type.MakeNullable(), index, property); } result[keyValuePair.Key] = new EntityProjectionExpression(entityProjection.EntityType, map); } diff --git a/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsQueryInMemoryTest.cs b/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsQueryInMemoryTest.cs index b78f9ac2328..b55714760bf 100644 --- a/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsQueryInMemoryTest.cs +++ b/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsQueryInMemoryTest.cs @@ -74,11 +74,5 @@ public override Task SelectMany_nested_navigation_property_required(bool isAsync { return base.SelectMany_nested_navigation_property_required(isAsync); } - - [ConditionalTheory(Skip = "issue #16963 Test")] - public override Task Include18_3_3(bool isAsync) - { - return base.Include18_3_3(isAsync); - } } } diff --git a/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsWeakQueryInMemoryTest.cs b/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsWeakQueryInMemoryTest.cs index 3637547868b..51713052d35 100644 --- a/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsWeakQueryInMemoryTest.cs +++ b/test/EFCore.InMemory.FunctionalTests/Query/ComplexNavigationsWeakQueryInMemoryTest.cs @@ -24,73 +24,67 @@ public override Task Complex_query_with_optional_navigations_and_client_side_eva return base.Complex_query_with_optional_navigations_and_client_side_evaluation(isAsync); } - [ConditionalTheory(Skip = "issue #16963 TooManyResults")] + [ConditionalTheory(Skip = "issue #17531")] public override Task SelectMany_with_nested_navigations_and_explicit_DefaultIfEmpty_followed_by_Select_required_navigation_using_different_navs(bool isAsync) { return base.SelectMany_with_nested_navigations_and_explicit_DefaultIfEmpty_followed_by_Select_required_navigation_using_different_navs(isAsync); } - [ConditionalTheory(Skip = "issue #16963 TooManyResults")] + [ConditionalTheory(Skip = "issue #17531")] public override Task SelectMany_with_nested_navigation_filter_and_explicit_DefaultIfEmpty(bool isAsync) { return base.SelectMany_with_nested_navigation_filter_and_explicit_DefaultIfEmpty(isAsync); } - [ConditionalTheory(Skip = "issue #16963 TooManyResults")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Project_collection_navigation_nested(bool isAsync) { return base.Project_collection_navigation_nested(isAsync); } - [ConditionalTheory(Skip = "issue #16963 TooManyResults")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Project_collection_navigation_nested_anonymous(bool isAsync) { return base.Project_collection_navigation_nested_anonymous(isAsync); } - [ConditionalTheory(Skip = "issue #16963 TooManyResults")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Project_collection_navigation_using_ef_property(bool isAsync) { return base.Project_collection_navigation_using_ef_property(isAsync); } - [ConditionalTheory(Skip = "issue #16963 TooManyResults")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Project_navigation_and_collection(bool isAsync) { return base.Project_navigation_and_collection(isAsync); } - [ConditionalTheory(Skip = "issue #16963 TooManyResults")] + [ConditionalTheory(Skip = "issue #17531")] public override Task SelectMany_nested_navigation_property_optional_and_projection(bool isAsync) { return base.SelectMany_nested_navigation_property_optional_and_projection(isAsync); } - [ConditionalTheory(Skip = "issue #16963 Test")] + [ConditionalTheory(Skip = "17539")] public override Task Join_navigations_in_inner_selector_translated_without_collision(bool isAsync) { return base.Join_navigations_in_inner_selector_translated_without_collision(isAsync); } - [ConditionalTheory(Skip = "issue #16963 Test")] + [ConditionalTheory(Skip = "17539")] public override Task Join_with_navigations_in_the_result_selector1(bool isAsync) { return base.Join_with_navigations_in_the_result_selector1(isAsync); } - [ConditionalTheory(Skip = "issue #16963 Test")] - public override Task Include18_3_3(bool isAsync) - { - return base.Include18_3_3(isAsync); - } - - [ConditionalTheory(Skip = "issue #16963 Test")] + [ConditionalTheory(Skip = "17539")] public override Task Where_nav_prop_reference_optional1_via_DefaultIfEmpty(bool isAsync) { return base.Where_nav_prop_reference_optional1_via_DefaultIfEmpty(isAsync); } - [ConditionalTheory(Skip = "issue #16963 Test")] + [ConditionalTheory(Skip = "17539")] public override Task Optional_navigation_propagates_nullability_to_manually_created_left_join2(bool isAsync) { return base.Optional_navigation_propagates_nullability_to_manually_created_left_join2(isAsync); diff --git a/test/EFCore.InMemory.FunctionalTests/Query/GearsOfWarQueryInMemoryTest.cs b/test/EFCore.InMemory.FunctionalTests/Query/GearsOfWarQueryInMemoryTest.cs index 39ada99f121..f96a06f59e7 100644 --- a/test/EFCore.InMemory.FunctionalTests/Query/GearsOfWarQueryInMemoryTest.cs +++ b/test/EFCore.InMemory.FunctionalTests/Query/GearsOfWarQueryInMemoryTest.cs @@ -45,43 +45,43 @@ public override Task GetValueOrDefault_on_DateTimeOffset(bool isAsync) return base.GetValueOrDefault_on_DateTimeOffset(isAsync); } - [ConditionalTheory(Skip = "issue #17453")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Correlated_collection_with_complex_OrderBy(bool isAsync) { return base.Correlated_collection_with_complex_OrderBy(isAsync); } - [ConditionalTheory(Skip = "issue #17453")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Correlated_collection_with_very_complex_order_by(bool isAsync) { return base.Correlated_collection_with_very_complex_order_by(isAsync); } - [ConditionalTheory(Skip = "issue #17463")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Include_collection_OrderBy_aggregate(bool isAsync) { return base.Include_collection_OrderBy_aggregate(isAsync); } - [ConditionalTheory(Skip = "issue #17463")] + [ConditionalTheory(Skip = "issue #17531")] public override Task Include_collection_with_complex_OrderBy3(bool isAsync) { return base.Include_collection_with_complex_OrderBy3(isAsync); } - [ConditionalTheory(Skip = "issue #17463")] + [ConditionalTheory(Skip = "issue #17537")] public override void Include_on_GroupJoin_SelectMany_DefaultIfEmpty_with_coalesce_result1() { base.Include_on_GroupJoin_SelectMany_DefaultIfEmpty_with_coalesce_result1(); } - [ConditionalTheory(Skip = "issue #17463")] + [ConditionalTheory(Skip = "issue #17537")] public override void Include_on_GroupJoin_SelectMany_DefaultIfEmpty_with_coalesce_result2() { base.Include_on_GroupJoin_SelectMany_DefaultIfEmpty_with_coalesce_result2(); } - [ConditionalTheory(Skip = "issue #16963 Nullable error")] //length + [ConditionalTheory(Skip = "issue #17540")] public override Task Null_semantics_is_correctly_applied_for_function_comparisons_that_take_arguments_from_optional_navigation_complex(bool isAsync) { return base.Null_semantics_is_correctly_applied_for_function_comparisons_that_take_arguments_from_optional_navigation_complex(isAsync); diff --git a/test/EFCore.InMemory.FunctionalTests/Query/SimpleQueryInMemoryTest.cs b/test/EFCore.InMemory.FunctionalTests/Query/SimpleQueryInMemoryTest.cs index ac062ef5fca..5232b49f54a 100644 --- a/test/EFCore.InMemory.FunctionalTests/Query/SimpleQueryInMemoryTest.cs +++ b/test/EFCore.InMemory.FunctionalTests/Query/SimpleQueryInMemoryTest.cs @@ -158,20 +158,12 @@ public override Task Projection_when_arithmetic_mixed_subqueries(bool isAsync) return base.Projection_when_arithmetic_mixed_subqueries(isAsync); } - #region SelectMany - + [ConditionalTheory(Skip = "Issue#17536")] public override Task SelectMany_correlated_with_outer_3(bool isAsync) { - return Task.CompletedTask; + return base.SelectMany_correlated_with_outer_3(isAsync); } - public override Task SelectMany_correlated_with_outer_4(bool isAsync) - { - return Task.CompletedTask; - } - - #endregion - [ConditionalTheory(Skip = "Issue #17531")] public override Task DefaultIfEmpty_in_subquery_nested(bool isAsync) {