diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/ClickHouseSkipReasons.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/ClickHouseSkipReasons.cs new file mode 100644 index 0000000..cb60189 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/ClickHouseSkipReasons.cs @@ -0,0 +1,6 @@ +namespace EntityFrameworkCore.ClickHouse.FunctionalTests; + +internal static class ClickHouseSkipReasons +{ + public const string Tbd = "TBD"; +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/ArithmeticDbFunctionsExtensionsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/ArithmeticDbFunctionsExtensionsClickHouseTest.cs deleted file mode 100644 index e440855..0000000 --- a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/ArithmeticDbFunctionsExtensionsClickHouseTest.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.TestModels.Northwind; -using Microsoft.EntityFrameworkCore.TestUtilities; -using System.Linq; -using System.Threading.Tasks; -using Xunit; -using Xunit.Abstractions; - -namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query; - -public class ArithmeticDbFunctionsExtensionsClickHouseTest : IClassFixture> -{ - public ArithmeticDbFunctionsExtensionsClickHouseTest( - NorthwindQueryClickHouseFixture fixture, - ITestOutputHelper testOutputHelper) - { - Fixture = fixture; - Fixture.TestSqlLoggerFactory.Clear(); - Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); - } - - [Fact] - public async Task Divide() - { - var context = CreateContext(); - - await context.OrderDetails - .Where(e => e.OrderID == 10285) - .Select(e => new { Double = EF.Functions.Divide(e.UnitPrice, e.Discount) }) - .ToListAsync(); - - AssertSql( - """ - SELECT divide("o"."UnitPrice", "o"."Discount") AS "Double" - FROM "OrderDetails" AS "o" - WHERE "o"."OrderID" = 10285 - """); - } - - protected NorthwindQueryClickHouseFixture Fixture { get; } - - private void AssertSql(params string[] expected) - => Fixture.TestSqlLoggerFactory.AssertBaseline(expected); - - protected NorthwindContext CreateContext() - => Fixture.CreateContext(); -} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonBulkUpdateClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonBulkUpdateClickHouseTest.cs new file mode 100644 index 0000000..8a64ad5 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonBulkUpdateClickHouseTest.cs @@ -0,0 +1,212 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonBulkUpdateClickHouseTest : ComplexJsonBulkUpdateRelationalTestBase +{ + public ComplexJsonBulkUpdateClickHouseTest(ComplexJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Delete_entity_with_associations() + { + await base.Delete_entity_with_associations(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_another_associate() + { + await base.Update_associate_to_another_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_inline() + { + await base.Update_associate_to_inline(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_inline_with_lambda() + { + await base.Update_associate_to_inline_with_lambda(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_null() + { + await base.Update_associate_to_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_null_parameter() + { + await base.Update_associate_to_null_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_null_with_lambda() + { + await base.Update_associate_to_null_with_lambda(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_parameter() + { + await base.Update_associate_to_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_with_null_required_property() + { + await base.Update_associate_with_null_required_property(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_collection_to_parameter() + { + await base.Update_collection_to_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_inside_primitive_collection() + { + await base.Update_inside_primitive_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_multiple_projected_associates_via_anonymous_type() + { + await base.Update_multiple_projected_associates_via_anonymous_type(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_multiple_properties_inside_associates_and_on_entity_type() + { + await base.Update_multiple_properties_inside_associates_and_on_entity_type(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_multiple_properties_inside_same_associate() + { + await base.Update_multiple_properties_inside_same_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_nested_associate_to_another_nested_associate() + { + await base.Update_nested_associate_to_another_nested_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_nested_associate_to_inline_with_lambda() + { + await base.Update_nested_associate_to_inline_with_lambda(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_nested_associate_to_parameter() + { + await base.Update_nested_associate_to_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_nested_collection_to_another_nested_collection() + { + await base.Update_nested_collection_to_another_nested_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_nested_collection_to_inline_with_lambda() + { + await base.Update_nested_collection_to_inline_with_lambda(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_nested_collection_to_parameter() + { + await base.Update_nested_collection_to_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_primitive_collection_to_another_collection() + { + await base.Update_primitive_collection_to_another_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_primitive_collection_to_parameter() + { + await base.Update_primitive_collection_to_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_primitive_collection_to_constant() + { + await base.Update_primitive_collection_to_constant(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_property_inside_associate() + { + await base.Update_property_inside_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_property_inside_associate_with_special_chars() + { + await base.Update_property_inside_associate_with_special_chars(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_property_inside_nested_associate() + { + await base.Update_property_inside_nested_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_property_on_projected_associate() + { + await base.Update_property_on_projected_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_required_nested_associate_to_null() + { + await base.Update_required_nested_associate_to_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Delete_optional_associate() + { + await base.Delete_optional_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Delete_required_associate() + { + await base.Delete_required_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_collection_referencing_the_original_collection() + { + await base.Update_collection_referencing_the_original_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_inside_structural_collection() + { + await base.Update_inside_structural_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_property_on_projected_associate_with_OrderBy_Skip() + { + await base.Update_property_on_projected_associate_with_OrderBy_Skip(); + } +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonClickHouseFixture.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonClickHouseFixture.cs new file mode 100644 index 0000000..1febea7 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonClickHouseFixture.cs @@ -0,0 +1,11 @@ +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using Microsoft.EntityFrameworkCore.TestUtilities; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonClickHouseFixture : ComplexJsonRelationalFixtureBase +{ + protected override ITestStoreFactory TestStoreFactory + => ClickHouseTestStoreFactory.Instance; +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonCollectionClickHouseTest.cs new file mode 100644 index 0000000..5df14a7 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonCollectionClickHouseTest.cs @@ -0,0 +1,99 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonCollectionClickHouseTest : ComplexJsonCollectionRelationalTestBase +{ + public ComplexJsonCollectionClickHouseTest(ComplexJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Count() + { + await base.Count(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Distinct() + { + await base.Distinct(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Distinct_over_projected_nested_collection() + { + await base.Distinct_over_projected_nested_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Distinct_over_projected_filtered_nested_collection() + { + await base.Distinct_over_projected_filtered_nested_collection(); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Distinct_projected(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Distinct_projected(queryTrackingBehavior); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task GroupBy() + { + await base.GroupBy(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Index_column() + { + await base.Index_column(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Index_constant() + { + await base.Index_constant(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Index_on_nested_collection() + { + await base.Index_on_nested_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Index_out_of_bounds() + { + await base.Index_out_of_bounds(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Index_parameter() + { + await base.Index_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task OrderBy_ElementAt() + { + await base.OrderBy_ElementAt(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_within_Select_within_Select_with_aggregates() + { + await base.Select_within_Select_within_Select_with_aggregates(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Where() + { + await base.Where(); + } +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonMiscellaneousClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonMiscellaneousClickHouseTest.cs new file mode 100644 index 0000000..36e9403 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonMiscellaneousClickHouseTest.cs @@ -0,0 +1,56 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonMiscellaneousClickHouseTest : ComplexJsonMiscellaneousRelationalTestBase +{ + public ComplexJsonMiscellaneousClickHouseTest(ComplexJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Where_on_associate_scalar_property() + { + await base.Where_on_associate_scalar_property(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Where_on_nested_associate_scalar_property() + { + await base.Where_on_nested_associate_scalar_property(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Where_on_optional_associate_scalar_property() + { + await base.Where_on_optional_associate_scalar_property(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task FromSql_on_root() + { + await base.FromSql_on_root(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Where_HasValue_on_nullable_value_type() + { + await base.Where_HasValue_on_nullable_value_type(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Where_property_on_non_nullable_value_type() + { + await base.Where_property_on_non_nullable_value_type(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Where_property_on_nullable_value_type_Value() + { + await base.Where_property_on_nullable_value_type_Value(); + } +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonPrimitiveCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonPrimitiveCollectionClickHouseTest.cs new file mode 100644 index 0000000..fc55ecd --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonPrimitiveCollectionClickHouseTest.cs @@ -0,0 +1,50 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonPrimitiveCollectionClickHouseTest : ComplexJsonPrimitiveCollectionRelationalTestBase +{ + public ComplexJsonPrimitiveCollectionClickHouseTest(ComplexJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Any_predicate() + { + await base.Any_predicate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Contains() + { + await base.Contains(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() + { + return base.Count(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index() + { + return base.Index(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_Count() + { + return base.Nested_Count(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_Sum() + { + return base.Select_Sum(); + } +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonProjectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonProjectionClickHouseTest.cs new file mode 100644 index 0000000..66ea08f --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonProjectionClickHouseTest.cs @@ -0,0 +1,177 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonProjectionClickHouseTest : ComplexJsonProjectionRelationalTestBase +{ + public ComplexJsonProjectionClickHouseTest(ComplexJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_associate_collection(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_associate_collection(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_nested_collection_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_nested_collection_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_nullable_value_type_property_on_null_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_nullable_value_type_property_on_null_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_optional_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_optional_nested_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_optional_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_optional_nested_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_property_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_property_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_required_associate_via_optional_navigation(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_required_associate_via_optional_navigation(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_required_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_required_nested_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_required_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_required_nested_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_root(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_root(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root_duplicated(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_root_duplicated(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_scalar_property_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_scalar_property_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_subquery_optional_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_subquery_optional_related_FirstOrDefault(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_subquery_required_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_subquery_required_related_FirstOrDefault(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_unmapped_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_unmapped_associate_scalar_property(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_untranslatable_method_on_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_untranslatable_method_on_associate_scalar_property(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_value_type_property_on_null_associate_throws(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_value_type_property_on_null_associate_throws(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task SelectMany_associate_collection(QueryTrackingBehavior queryTrackingBehavior) + { + await base.SelectMany_associate_collection(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task SelectMany_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.SelectMany_nested_collection_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_non_nullable_value_type(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_non_nullable_value_type(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task SelectMany_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + await base.SelectMany_nested_collection_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_nullable_value_type(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_nullable_value_type(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_nullable_value_type_with_Value(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_nullable_value_type_with_Value(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Select_root_with_value_types(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Select_root_with_value_types(queryTrackingBehavior); + } +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonSetOperationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonSetOperationsClickHouseTest.cs new file mode 100644 index 0000000..fbde833 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonSetOperationsClickHouseTest.cs @@ -0,0 +1,45 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonSetOperationsClickHouseTest : ComplexJsonSetOperationsRelationalTestBase +{ + public ComplexJsonSetOperationsClickHouseTest(ComplexJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Over_assocate_collection_Select_nested_with_aggregates_projected(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Over_assocate_collection_Select_nested_with_aggregates_projected(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Over_associate_collections() + { + await base.Over_associate_collections(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Over_nested_associate_collection() + { + await base.Over_nested_associate_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Over_different_collection_properties() + { + await base.Over_different_collection_properties(); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Over_associate_collection_projected(QueryTrackingBehavior queryTrackingBehavior) + { + await base.Over_associate_collection_projected(queryTrackingBehavior); + } +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonStructuralEqualityClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonStructuralEqualityClickHouseTest.cs new file mode 100644 index 0000000..5fee7e7 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexJson/ComplexJsonStructuralEqualityClickHouseTest.cs @@ -0,0 +1,110 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexJson; + +public class ComplexJsonStructuralEqualityClickHouseTest : ComplexJsonStructuralEqualityRelationalTestBase +{ + public ComplexJsonStructuralEqualityClickHouseTest(ComplexJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Associate_with_inline_null() + { + await base.Associate_with_inline_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Associate_with_parameter_null() + { + await base.Associate_with_parameter_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Contains_with_inline() + { + await base.Contains_with_inline(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_nested_and_composed_operators() + { + return base.Contains_with_nested_and_composed_operators(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Contains_with_operators_composed_on_the_collection() + { + await base.Contains_with_operators_composed_on_the_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Contains_with_parameter() + { + await base.Contains_with_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Nested_associate_with_inline_null() + { + await base.Nested_associate_with_inline_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Nested_associate_with_inline() + { + await base.Nested_associate_with_inline(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Nested_associate_with_parameter() + { + await base.Nested_associate_with_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Nested_collection_with_inline() + { + await base.Nested_collection_with_inline(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Nested_collection_with_parameter() + { + await base.Nested_collection_with_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Not_equals() + { + await base.Not_equals(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Nullable_value_type_with_null() + { + await base.Nullable_value_type_with_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Two_associates() + { + await base.Two_associates(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Two_nested_associates() + { + await base.Two_nested_associates(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Two_nested_collections() + { + await base.Two_nested_collections(); + } +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingBulkUpdateClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingBulkUpdateClickHouseTest.cs new file mode 100644 index 0000000..cf82559 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingBulkUpdateClickHouseTest.cs @@ -0,0 +1,140 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexTableSplitting; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexTableSplitting; + +public class ComplexTableSplittingBulkUpdateClickHouseTest : ComplexTableSplittingBulkUpdateRelationalTestBase +{ + public ComplexTableSplittingBulkUpdateClickHouseTest(ComplexTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Delete_entity_with_associations() + { + await base.Delete_entity_with_associations(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_another_associate() + { + await base.Update_associate_to_another_associate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_inline() + { + await base.Update_associate_to_inline(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_inline_with_lambda() + { + await base.Update_associate_to_inline_with_lambda(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_null() + { + await base.Update_associate_to_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_null_parameter() + { + await base.Update_associate_to_null_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_null_with_lambda() + { + await base.Update_associate_to_null_with_lambda(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override async Task Update_associate_to_parameter() + { + await base.Update_associate_to_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_associate_with_null_required_property() + { + return base.Update_associate_with_null_required_property(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Delete_required_associate() => base.Delete_required_associate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Delete_optional_associate() => base.Delete_optional_associate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_property_on_projected_associate_with_OrderBy_Skip() => base.Update_property_on_projected_associate_with_OrderBy_Skip(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_collection_to_parameter() => base.Update_collection_to_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_nested_collection_to_parameter() => base.Update_nested_collection_to_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_nested_collection_to_inline_with_lambda() => base.Update_nested_collection_to_inline_with_lambda(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_collection_referencing_the_original_collection() => base.Update_collection_referencing_the_original_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_nested_collection_to_another_nested_collection() => base.Update_nested_collection_to_another_nested_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_inside_structural_collection() => base.Update_inside_structural_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_property_inside_associate() => base.Update_property_inside_associate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_property_inside_associate_with_special_chars() => base.Update_property_inside_associate_with_special_chars(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_property_inside_nested_associate() => base.Update_property_inside_nested_associate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_property_on_projected_associate() => base.Update_property_on_projected_associate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_nested_associate_to_parameter() => base.Update_nested_associate_to_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_nested_associate_to_another_nested_associate() => base.Update_nested_associate_to_another_nested_associate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_nested_associate_to_inline_with_lambda() => base.Update_nested_associate_to_inline_with_lambda(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_required_nested_associate_to_null() => base.Update_required_nested_associate_to_null(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_primitive_collection_to_constant() => base.Update_primitive_collection_to_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_primitive_collection_to_parameter() => base.Update_primitive_collection_to_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_primitive_collection_to_another_collection() => base.Update_primitive_collection_to_another_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_inside_primitive_collection() => base.Update_inside_primitive_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_multiple_properties_inside_same_associate() => base.Update_multiple_properties_inside_same_associate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_multiple_properties_inside_associates_and_on_entity_type() => base.Update_multiple_properties_inside_associates_and_on_entity_type(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_multiple_projected_associates_via_anonymous_type() => base.Update_multiple_projected_associates_via_anonymous_type(); +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingClickHouseFixture.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingClickHouseFixture.cs new file mode 100644 index 0000000..c5a006a --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingClickHouseFixture.cs @@ -0,0 +1,11 @@ +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexTableSplitting; +using Microsoft.EntityFrameworkCore.TestUtilities; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexTableSplitting; + +public class ComplexTableSplittingClickHouseFixture : ComplexTableSplittingRelationalFixtureBase +{ + protected override ITestStoreFactory TestStoreFactory + => ClickHouseTestStoreFactory.Instance; +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingMiscellaneousClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingMiscellaneousClickHouseTest.cs new file mode 100644 index 0000000..5d869a1 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingMiscellaneousClickHouseTest.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexTableSplitting; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexTableSplitting; + +public class ComplexTableSplittingMiscellaneousClickHouseTest : ComplexTableSplittingMiscellaneousRelationalTestBase +{ + public ComplexTableSplittingMiscellaneousClickHouseTest(ComplexTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromSql_on_root() => base.FromSql_on_root(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_property_on_non_nullable_value_type() => base.Where_property_on_non_nullable_value_type(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_property_on_nullable_value_type_Value() => base.Where_property_on_nullable_value_type_Value(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_HasValue_on_nullable_value_type() => base.Where_HasValue_on_nullable_value_type(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_associate_scalar_property() => base.Where_on_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_optional_associate_scalar_property() => base.Where_on_optional_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_nested_associate_scalar_property() => base.Where_on_nested_associate_scalar_property(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingPrimitiveCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingPrimitiveCollectionClickHouseTest.cs new file mode 100644 index 0000000..500f0a7 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingPrimitiveCollectionClickHouseTest.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexTableSplitting; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexTableSplitting; + +public class ComplexTableSplittingPrimitiveCollectionClickHouseTest : ComplexTableSplittingPrimitiveCollectionRelationalTestBase +{ + public ComplexTableSplittingPrimitiveCollectionClickHouseTest(ComplexTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() => base.Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index() => base.Index(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains() => base.Contains(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Any_predicate() => base.Any_predicate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_Count() => base.Nested_Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_Sum() => base.Select_Sum(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingProjectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingProjectionClickHouseTest.cs new file mode 100644 index 0000000..1936fcf --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingProjectionClickHouseTest.cs @@ -0,0 +1,96 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexTableSplitting; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexTableSplitting; + +public class ComplexTableSplittingProjectionClickHouseTest : ComplexTableSplittingProjectionRelationalTestBase +{ + public ComplexTableSplittingProjectionClickHouseTest(ComplexTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root_with_value_types(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root_with_value_types(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_non_nullable_value_type(QueryTrackingBehavior queryTrackingBehavior) => base.Select_non_nullable_value_type(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nullable_value_type(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nullable_value_type(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nullable_value_type_with_Value(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nullable_value_type_with_Value(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_scalar_property_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_scalar_property_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_property_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_property_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_value_type_property_on_null_associate_throws(QueryTrackingBehavior queryTrackingBehavior) => base.Select_value_type_property_on_null_associate_throws(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nullable_value_type_property_on_null_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nullable_value_type_property_on_null_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_associate_via_optional_navigation(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_associate_via_optional_navigation(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_unmapped_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_unmapped_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_untranslatable_method_on_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_untranslatable_method_on_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root_duplicated(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root_duplicated(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_required_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_required_related_FirstOrDefault(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_optional_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_optional_related_FirstOrDefault(queryTrackingBehavior); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingStructuralEqualityClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingStructuralEqualityClickHouseTest.cs new file mode 100644 index 0000000..20b7bbd --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/ComplexTableSplitting/ComplexTableSplittingStructuralEqualityClickHouseTest.cs @@ -0,0 +1,12 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.ComplexTableSplitting; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.ComplexTableSplitting; + +public class ComplexTableSplittingStructuralEqualityClickHouseTest : ComplexTableSplittingStructuralEqualityRelationalTestBase +{ + public ComplexTableSplittingStructuralEqualityClickHouseTest(ComplexTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsClickHouseFixture.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsClickHouseFixture.cs new file mode 100644 index 0000000..4333f09 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsClickHouseFixture.cs @@ -0,0 +1,11 @@ +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Microsoft.EntityFrameworkCore.Query.Associations.Navigations; +using Microsoft.EntityFrameworkCore.TestUtilities; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.Navigations; + +public class NavigationsClickHouseFixture : NavigationsRelationalFixtureBase +{ + protected override ITestStoreFactory TestStoreFactory + => ClickHouseTestStoreFactory.Instance; +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsCollectionClickHouseTest.cs new file mode 100644 index 0000000..eea1b11 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsCollectionClickHouseTest.cs @@ -0,0 +1,56 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.Navigations; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.Navigations; + +public class NavigationsCollectionClickHouseTest : NavigationsCollectionRelationalTestBase +{ + public NavigationsCollectionClickHouseTest(NavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task OrderBy_ElementAt() => base.OrderBy_ElementAt(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_constant() => base.Index_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct() => base.Distinct(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_out_of_bounds() => base.Index_out_of_bounds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_on_nested_collection() => base.Index_on_nested_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_parameter() => base.Index_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_over_projected_nested_collection() => base.Distinct_over_projected_nested_collection(); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_projected(Microsoft.EntityFrameworkCore.QueryTrackingBehavior queryTrackingBehavior) => base.Distinct_projected(queryTrackingBehavior); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_over_projected_filtered_nested_collection() => base.Distinct_over_projected_filtered_nested_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where() => base.Where(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() => base.Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task GroupBy() => base.GroupBy(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_column() => base.Index_column(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_within_Select_within_Select_with_aggregates() => base.Select_within_Select_within_Select_with_aggregates(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsIncludeClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsIncludeClickHouseTest.cs new file mode 100644 index 0000000..cd778f2 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsIncludeClickHouseTest.cs @@ -0,0 +1,41 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.Navigations; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.Navigations; + +public class NavigationsIncludeClickHouseTest : NavigationsIncludeRelationalTestBase +{ + public NavigationsIncludeClickHouseTest(NavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_nested_collection_on_collection(bool async) => base.Include_nested_collection_on_collection(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_required(bool async) => base.Include_required(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_nested(bool async) => base.Include_nested(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_collection(bool async) => base.Include_collection(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_optional(bool async) => base.Include_optional(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_nested_collection_on_optional(bool async) => base.Include_nested_collection_on_optional(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_required_optional_and_collection(bool async) => base.Include_required_optional_and_collection(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_nested_collection(bool async) => base.Include_nested_collection(async); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Include_nested_optional(bool async) => base.Include_nested_optional(async); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsMiscellaneousClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsMiscellaneousClickHouseTest.cs new file mode 100644 index 0000000..ffc6131 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsMiscellaneousClickHouseTest.cs @@ -0,0 +1,26 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.Navigations; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.Navigations; + +public class NavigationsMiscellaneousClickHouseTest : NavigationsMiscellaneousRelationalTestBase +{ + public NavigationsMiscellaneousClickHouseTest(NavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromSql_on_root() => base.FromSql_on_root(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_optional_associate_scalar_property() => base.Where_on_optional_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_associate_scalar_property() => base.Where_on_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_nested_associate_scalar_property() => base.Where_on_nested_associate_scalar_property(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsPrimitiveCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsPrimitiveCollectionClickHouseTest.cs new file mode 100644 index 0000000..a6e8a49 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsPrimitiveCollectionClickHouseTest.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.Navigations; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.Navigations; + +public class NavigationsPrimitiveCollectionClickHouseTest : NavigationsPrimitiveCollectionRelationalTestBase +{ + public NavigationsPrimitiveCollectionClickHouseTest(NavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains() => base.Contains(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_Sum() => base.Select_Sum(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() => base.Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_Count() => base.Nested_Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Any_predicate() => base.Any_predicate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index() => base.Index(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsProjectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsProjectionClickHouseTest.cs new file mode 100644 index 0000000..c82ade0 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsProjectionClickHouseTest.cs @@ -0,0 +1,84 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.Navigations; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.Navigations; + +public class NavigationsProjectionClickHouseTest : NavigationsProjectionRelationalTestBase +{ + public NavigationsProjectionClickHouseTest(NavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_untranslatable_method_on_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_untranslatable_method_on_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_scalar_property_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_scalar_property_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_optional_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_optional_related_FirstOrDefault(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_required_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_required_related_FirstOrDefault(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_property_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_property_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_unmapped_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_unmapped_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_value_type_property_on_null_associate_throws(QueryTrackingBehavior queryTrackingBehavior) => base.Select_value_type_property_on_null_associate_throws(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root_duplicated(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root_duplicated(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nullable_value_type_property_on_null_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nullable_value_type_property_on_null_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_associate_via_optional_navigation(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_associate_via_optional_navigation(queryTrackingBehavior); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsSetOperationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsSetOperationsClickHouseTest.cs new file mode 100644 index 0000000..0053674 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/Navigations/NavigationsSetOperationsClickHouseTest.cs @@ -0,0 +1,30 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.Navigations; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.Navigations; + +public class NavigationsSetOperationsClickHouseTest : NavigationsSetOperationsRelationalTestBase +{ + public NavigationsSetOperationsClickHouseTest(NavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_associate_collection_projected(QueryTrackingBehavior queryTrackingBehavior) => base.Over_associate_collection_projected(queryTrackingBehavior); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_associate_collections() => base.Over_associate_collections(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_different_collection_properties() => base.Over_different_collection_properties(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_nested_associate_collection() => base.Over_nested_associate_collection(); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_assocate_collection_Select_nested_with_aggregates_projected(QueryTrackingBehavior queryTrackingBehavior) => base.Over_assocate_collection_Select_nested_with_aggregates_projected(queryTrackingBehavior); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonBulkUpdateClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonBulkUpdateClickHouseTest.cs new file mode 100644 index 0000000..5197a17 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonBulkUpdateClickHouseTest.cs @@ -0,0 +1,23 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedJson; + +public class OwnedJsonBulkUpdateClickHouseTest : OwnedJsonBulkUpdateRelationalTestBase +{ + public OwnedJsonBulkUpdateClickHouseTest(OwnedJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_association() => base.Update_association(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Update_property_inside_association() => base.Update_property_inside_association(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Delete_association() => base.Delete_association(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonClickHouseFixture.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonClickHouseFixture.cs new file mode 100644 index 0000000..462348b --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonClickHouseFixture.cs @@ -0,0 +1,11 @@ +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedJson; +using Microsoft.EntityFrameworkCore.TestUtilities; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedJson; + +public class OwnedJsonClickHouseFixture : OwnedJsonRelationalFixtureBase +{ + protected override ITestStoreFactory TestStoreFactory + => ClickHouseTestStoreFactory.Instance; +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonCollectionClickHouseTest.cs new file mode 100644 index 0000000..7de8a13 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonCollectionClickHouseTest.cs @@ -0,0 +1,57 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedJson; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedJson; + +public class OwnedJsonCollectionClickHouseTest : OwnedJsonCollectionRelationalTestBase +{ + public OwnedJsonCollectionClickHouseTest(OwnedJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_on_nested_collection() => base.Index_on_nested_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_parameter() => base.Index_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_over_projected_filtered_nested_collection() => base.Distinct_over_projected_filtered_nested_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_column() => base.Index_column(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_out_of_bounds() => base.Index_out_of_bounds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where() => base.Where(); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_projected(QueryTrackingBehavior queryTrackingBehavior) => base.Distinct_projected(queryTrackingBehavior); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task GroupBy() => base.GroupBy(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct() => base.Distinct(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_constant() => base.Index_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task OrderBy_ElementAt() => base.OrderBy_ElementAt(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_within_Select_within_Select_with_aggregates() => base.Select_within_Select_within_Select_with_aggregates(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() => base.Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_over_projected_nested_collection() => base.Distinct_over_projected_nested_collection(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonMiscellaneousClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonMiscellaneousClickHouseTest.cs new file mode 100644 index 0000000..73eb1a5 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonMiscellaneousClickHouseTest.cs @@ -0,0 +1,26 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedJson; + +public class OwnedJsonMiscellaneousClickHouseTest : OwnedJsonMiscellaneousRelationalTestBase +{ + public OwnedJsonMiscellaneousClickHouseTest(OwnedJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_associate_scalar_property() => base.Where_on_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromSql_on_root() => base.FromSql_on_root(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_optional_associate_scalar_property() => base.Where_on_optional_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_nested_associate_scalar_property() => base.Where_on_nested_associate_scalar_property(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonPrimitiveCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonPrimitiveCollectionClickHouseTest.cs new file mode 100644 index 0000000..08e9eac --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonPrimitiveCollectionClickHouseTest.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedJson; + +public class OwnedJsonPrimitiveCollectionClickHouseTest : OwnedJsonPrimitiveCollectionRelationalTestBase +{ + public OwnedJsonPrimitiveCollectionClickHouseTest(OwnedJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() => base.Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_Sum() => base.Select_Sum(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Any_predicate() => base.Any_predicate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_Count() => base.Nested_Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index() => base.Index(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains() => base.Contains(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonProjectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonProjectionClickHouseTest.cs new file mode 100644 index 0000000..99f588f --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonProjectionClickHouseTest.cs @@ -0,0 +1,84 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedJson; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedJson; + +public class OwnedJsonProjectionClickHouseTest : OwnedJsonProjectionRelationalTestBase +{ + public OwnedJsonProjectionClickHouseTest(OwnedJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_untranslatable_method_on_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_untranslatable_method_on_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root_duplicated(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root_duplicated(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_unmapped_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_unmapped_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_required_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_required_related_FirstOrDefault(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_value_type_property_on_null_associate_throws(QueryTrackingBehavior queryTrackingBehavior) => base.Select_value_type_property_on_null_associate_throws(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_scalar_property_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_scalar_property_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nullable_value_type_property_on_null_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nullable_value_type_property_on_null_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_associate_via_optional_navigation(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_associate_via_optional_navigation(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_property_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_property_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_optional_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_optional_related_FirstOrDefault(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_optional_associate(queryTrackingBehavior); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonStructuralEqualityClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonStructuralEqualityClickHouseTest.cs new file mode 100644 index 0000000..26eb736 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedJson/OwnedJsonStructuralEqualityClickHouseTest.cs @@ -0,0 +1,59 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedJson; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedJson; + +public class OwnedJsonStructuralEqualityClickHouseTest : OwnedJsonStructuralEqualityRelationalTestBase +{ + public OwnedJsonStructuralEqualityClickHouseTest(OwnedJsonClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_associates() => base.Two_associates(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_parameter() => base.Nested_associate_with_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_parameter() => base.Contains_with_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_operators_composed_on_the_collection() => base.Contains_with_operators_composed_on_the_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_collection_with_parameter() => base.Nested_collection_with_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Associate_with_parameter_null() => base.Associate_with_parameter_null(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Not_equals() => base.Not_equals(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_inline() => base.Nested_associate_with_inline(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Associate_with_inline_null() => base.Associate_with_inline_null(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_nested_associates() => base.Two_nested_associates(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_inline_null() => base.Nested_associate_with_inline_null(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_collection_with_inline() => base.Nested_collection_with_inline(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_nested_and_composed_operators() => base.Contains_with_nested_and_composed_operators(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_nested_collections() => base.Two_nested_collections(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_inline() => base.Contains_with_inline(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsClickHouseFixture.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsClickHouseFixture.cs new file mode 100644 index 0000000..a09c02c --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsClickHouseFixture.cs @@ -0,0 +1,11 @@ +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedNavigations; +using Microsoft.EntityFrameworkCore.TestUtilities; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedNavigations; + +public class OwnedNavigationsClickHouseFixture : OwnedNavigationsRelationalFixtureBase +{ + protected override ITestStoreFactory TestStoreFactory + => ClickHouseTestStoreFactory.Instance; +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsCollectionClickHouseTest.cs new file mode 100644 index 0000000..3b849a9 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsCollectionClickHouseTest.cs @@ -0,0 +1,57 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedNavigations; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedNavigations; + +public class OwnedNavigationsCollectionClickHouseTest : OwnedNavigationsCollectionRelationalTestBase +{ + public OwnedNavigationsCollectionClickHouseTest(OwnedNavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task OrderBy_ElementAt() => base.OrderBy_ElementAt(); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_projected(QueryTrackingBehavior queryTrackingBehavior) => base.Distinct_projected(queryTrackingBehavior); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() => base.Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where() => base.Where(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct() => base.Distinct(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task GroupBy() => base.GroupBy(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_within_Select_within_Select_with_aggregates() => base.Select_within_Select_within_Select_with_aggregates(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_column() => base.Index_column(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_over_projected_filtered_nested_collection() => base.Distinct_over_projected_filtered_nested_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_parameter() => base.Index_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_constant() => base.Index_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_out_of_bounds() => base.Index_out_of_bounds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index_on_nested_collection() => base.Index_on_nested_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Distinct_over_projected_nested_collection() => base.Distinct_over_projected_nested_collection(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsMiscellaneousClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsMiscellaneousClickHouseTest.cs new file mode 100644 index 0000000..2c4a812 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsMiscellaneousClickHouseTest.cs @@ -0,0 +1,26 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedNavigations; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedNavigations; + +public class OwnedNavigationsMiscellaneousClickHouseTest : OwnedNavigationsMiscellaneousRelationalTestBase +{ + public OwnedNavigationsMiscellaneousClickHouseTest(OwnedNavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_associate_scalar_property() => base.Where_on_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_nested_associate_scalar_property() => base.Where_on_nested_associate_scalar_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromSql_on_root() => base.FromSql_on_root(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_optional_associate_scalar_property() => base.Where_on_optional_associate_scalar_property(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsPrimitiveCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsPrimitiveCollectionClickHouseTest.cs new file mode 100644 index 0000000..3902a9e --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsPrimitiveCollectionClickHouseTest.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedNavigations; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedNavigations; + +public class OwnedNavigationsPrimitiveCollectionClickHouseTest : OwnedNavigationsPrimitiveCollectionRelationalTestBase +{ + public OwnedNavigationsPrimitiveCollectionClickHouseTest(OwnedNavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Any_predicate() => base.Any_predicate(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index() => base.Index(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() => base.Count(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_Sum() => base.Select_Sum(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains() => base.Contains(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_Count() => base.Nested_Count(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsProjectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsProjectionClickHouseTest.cs new file mode 100644 index 0000000..4c17dac --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsProjectionClickHouseTest.cs @@ -0,0 +1,84 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedNavigations; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedNavigations; + +public class OwnedNavigationsProjectionClickHouseTest : OwnedNavigationsProjectionRelationalTestBase +{ + public OwnedNavigationsProjectionClickHouseTest(OwnedNavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_unmapped_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_unmapped_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_untranslatable_method_on_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) => base.Select_untranslatable_method_on_associate_scalar_property(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.SelectMany_nested_collection_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_scalar_property_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_scalar_property_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_property_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_property_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_value_type_property_on_null_associate_throws(QueryTrackingBehavior queryTrackingBehavior) => base.Select_value_type_property_on_null_associate_throws(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nullable_value_type_property_on_null_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nullable_value_type_property_on_null_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_optional_nested_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_associate_via_optional_navigation(QueryTrackingBehavior queryTrackingBehavior) => base.Select_required_associate_via_optional_navigation(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate_collection(QueryTrackingBehavior queryTrackingBehavior) => base.Select_associate_collection(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_required_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) => base.Select_nested_collection_on_optional_associate(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root_duplicated(QueryTrackingBehavior queryTrackingBehavior) => base.Select_root_duplicated(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_required_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_required_related_FirstOrDefault(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_optional_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) => base.Select_subquery_optional_related_FirstOrDefault(queryTrackingBehavior); +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsSetOperationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsSetOperationsClickHouseTest.cs new file mode 100644 index 0000000..63ec611 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsSetOperationsClickHouseTest.cs @@ -0,0 +1,30 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedNavigations; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedNavigations; + +public class OwnedNavigationsSetOperationsClickHouseTest : OwnedNavigationsSetOperationsRelationalTestBase +{ + public OwnedNavigationsSetOperationsClickHouseTest(OwnedNavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_assocate_collection_Select_nested_with_aggregates_projected(QueryTrackingBehavior queryTrackingBehavior) => base.Over_assocate_collection_Select_nested_with_aggregates_projected(queryTrackingBehavior); + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_associate_collection_projected(QueryTrackingBehavior queryTrackingBehavior) => base.Over_associate_collection_projected(queryTrackingBehavior); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_nested_associate_collection() => base.Over_nested_associate_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_different_collection_properties() => base.Over_different_collection_properties(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Over_associate_collections() => base.Over_associate_collections(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsStructuralEqualityClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsStructuralEqualityClickHouseTest.cs new file mode 100644 index 0000000..c1c2573 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedNavigations/OwnedNavigationsStructuralEqualityClickHouseTest.cs @@ -0,0 +1,59 @@ +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedNavigations; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedNavigations; + +public class OwnedNavigationsStructuralEqualityClickHouseTest : OwnedNavigationsStructuralEqualityRelationalTestBase +{ + public OwnedNavigationsStructuralEqualityClickHouseTest(OwnedNavigationsClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_collection_with_inline() => base.Nested_collection_with_inline(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_nested_associates() => base.Two_nested_associates(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_inline() => base.Nested_associate_with_inline(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_nested_collections() => base.Two_nested_collections(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_parameter() => base.Nested_associate_with_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_inline() => base.Contains_with_inline(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_collection_with_parameter() => base.Nested_collection_with_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_parameter() => base.Contains_with_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Associate_with_parameter_null() => base.Associate_with_parameter_null(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Associate_with_inline_null() => base.Associate_with_inline_null(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_operators_composed_on_the_collection() => base.Contains_with_operators_composed_on_the_collection(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Not_equals() => base.Not_equals(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_nested_and_composed_operators() => base.Contains_with_nested_and_composed_operators(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_associates() => base.Two_associates(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_inline_null() => base.Nested_associate_with_inline_null(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingClickHouseFixture.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingClickHouseFixture.cs new file mode 100644 index 0000000..99956b2 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingClickHouseFixture.cs @@ -0,0 +1,11 @@ +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedTableSplitting; +using Microsoft.EntityFrameworkCore.TestUtilities; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedTableSplitting; + +public class OwnedTableSplittingClickHouseFixture : OwnedTableSplittingRelationalFixtureBase +{ + protected override ITestStoreFactory TestStoreFactory + => ClickHouseTestStoreFactory.Instance; +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingMiscellaneousClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingMiscellaneousClickHouseTest.cs new file mode 100644 index 0000000..2765834 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingMiscellaneousClickHouseTest.cs @@ -0,0 +1,38 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedTableSplitting; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedTableSplitting; + +public class OwnedTableSplittingMiscellaneousClickHouseTest : OwnedTableSplittingMiscellaneousRelationalTestBase +{ + public OwnedTableSplittingMiscellaneousClickHouseTest(OwnedTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromSql_on_root() + { + return base.FromSql_on_root(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_associate_scalar_property() + { + return base.Where_on_associate_scalar_property(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_nested_associate_scalar_property() + { + return base.Where_on_nested_associate_scalar_property(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Where_on_optional_associate_scalar_property() + { + return base.Where_on_optional_associate_scalar_property(); + } +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingPrimitiveCollectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingPrimitiveCollectionClickHouseTest.cs new file mode 100644 index 0000000..20d9b0b --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingPrimitiveCollectionClickHouseTest.cs @@ -0,0 +1,50 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedTableSplitting; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedTableSplitting; + +public class OwnedTableSplittingPrimitiveCollectionClickHouseTest : OwnedTableSplittingPrimitiveCollectionRelationalTestBase +{ + public OwnedTableSplittingPrimitiveCollectionClickHouseTest(OwnedTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Any_predicate() + { + return base.Any_predicate(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains() + { + return base.Contains(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Count() + { + return base.Count(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Index() + { + return base.Index(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_Count() + { + return base.Nested_Count(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_Sum() + { + return base.Select_Sum(); + } +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingProjectionClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingProjectionClickHouseTest.cs new file mode 100644 index 0000000..26ac104 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingProjectionClickHouseTest.cs @@ -0,0 +1,153 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedTableSplitting; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedTableSplitting; + +public class OwnedTableSplittingProjectionClickHouseTest : OwnedTableSplittingProjectionRelationalTestBase +{ + public OwnedTableSplittingProjectionClickHouseTest(OwnedTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_associate_collection(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_associate_collection(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_nested_collection_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_nested_collection_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_nullable_value_type_property_on_null_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_nullable_value_type_property_on_null_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_optional_nested_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_optional_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_optional_nested_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_property_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_property_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_associate_via_optional_navigation(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_required_associate_via_optional_navigation(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_required_nested_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_required_nested_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_required_nested_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_root(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_root_duplicated(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_root_duplicated(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_scalar_property_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_scalar_property_on_required_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_optional_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_subquery_optional_related_FirstOrDefault(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_subquery_required_related_FirstOrDefault(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_subquery_required_related_FirstOrDefault(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_unmapped_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_unmapped_associate_scalar_property(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_untranslatable_method_on_associate_scalar_property(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_untranslatable_method_on_associate_scalar_property(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Select_value_type_property_on_null_associate_throws(QueryTrackingBehavior queryTrackingBehavior) + { + return base.Select_value_type_property_on_null_associate_throws(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_associate_collection(QueryTrackingBehavior queryTrackingBehavior) + { + return base.SelectMany_associate_collection(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_optional_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.SelectMany_nested_collection_on_optional_associate(queryTrackingBehavior); + } + + [ConditionalTheory(Skip = ClickHouseSkipReasons.Tbd)] + public override Task SelectMany_nested_collection_on_required_associate(QueryTrackingBehavior queryTrackingBehavior) + { + return base.SelectMany_nested_collection_on_required_associate(queryTrackingBehavior); + } +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingStructuralEqualityClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingStructuralEqualityClickHouseTest.cs new file mode 100644 index 0000000..31019b2 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Associations/OwnedTableSplitting/OwnedTableSplittingStructuralEqualityClickHouseTest.cs @@ -0,0 +1,104 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Associations.OwnedTableSplitting; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Associations.OwnedTableSplitting; + +public class OwnedTableSplittingStructuralEqualityClickHouseTest : OwnedTableSplittingStructuralEqualityRelationalTestBase +{ + public OwnedTableSplittingStructuralEqualityClickHouseTest(OwnedTableSplittingClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture, testOutputHelper) + { + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Associate_with_inline_null() + { + return base.Associate_with_inline_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Associate_with_parameter_null() + { + return base.Associate_with_parameter_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_inline_null() + { + return base.Nested_associate_with_inline_null(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Not_equals() + { + return base.Not_equals(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_inline() + { + return base.Contains_with_inline(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_parameter() + { + return base.Contains_with_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_associates() + { + return base.Two_associates(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_inline() + { + return base.Nested_associate_with_inline(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_collection_with_parameter() + { + return base.Nested_collection_with_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_associate_with_parameter() + { + return base.Nested_associate_with_parameter(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_nested_and_composed_operators() + { + return base.Contains_with_nested_and_composed_operators(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_nested_collections() + { + return base.Two_nested_collections(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Two_nested_associates() + { + return base.Two_nested_associates(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Contains_with_operators_composed_on_the_collection() + { + return base.Contains_with_operators_composed_on_the_collection(); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nested_collection_with_inline() + { + return base.Nested_collection_with_inline(); + } +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/BasicTypesQueryClickHouseFixture.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/BasicTypesQueryClickHouseFixture.cs new file mode 100644 index 0000000..9199c6c --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/BasicTypesQueryClickHouseFixture.cs @@ -0,0 +1,14 @@ +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Microsoft.EntityFrameworkCore.Query.Translations; +using Microsoft.EntityFrameworkCore.TestUtilities; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations; + +public class BasicTypesQueryClickHouseFixture : BasicTypesQueryFixtureBase, ITestSqlLoggerFactory +{ + protected override ITestStoreFactory TestStoreFactory + => ClickHouseTestStoreFactory.Instance; + + public TestSqlLoggerFactory TestSqlLoggerFactory + => (TestSqlLoggerFactory)ListLoggerFactory; +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/ArithmeticOperatorTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/ArithmeticOperatorTranslationsClickHouseTest.cs new file mode 100644 index 0000000..406f661 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/ArithmeticOperatorTranslationsClickHouseTest.cs @@ -0,0 +1,33 @@ +using Microsoft.EntityFrameworkCore.Query.Translations.Operators; +using Microsoft.EntityFrameworkCore.TestUtilities; +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Xunit; +using Xunit.Abstractions; +using System.Threading.Tasks; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Operators; + +public class ArithmeticOperatorTranslationsClickHouseTest : ArithmeticOperatorTranslationsTestBase +{ + public ArithmeticOperatorTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Add() => base.Add(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Subtract() => base.Subtract(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Multiply() => base.Multiply(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Minus() => base.Minus(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Modulo() => base.Modulo(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/BitwiseOperatorTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/BitwiseOperatorTranslationsClickHouseTest.cs new file mode 100644 index 0000000..389fa7b --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/BitwiseOperatorTranslationsClickHouseTest.cs @@ -0,0 +1,63 @@ +using Microsoft.EntityFrameworkCore.Query.Translations.Operators; +using Microsoft.EntityFrameworkCore.TestUtilities; +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Xunit; +using Xunit.Abstractions; +using System.Threading.Tasks; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Operators; + +public class BitwiseOperatorTranslationsClickHouseTest : BitwiseOperatorTranslationsTestBase +{ + public BitwiseOperatorTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task And() => base.And(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Or() => base.Or(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Xor() => base.Xor(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Complement() => base.Complement(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Left_shift() => base.Left_shift(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Right_shift() => base.Right_shift(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Or_multiple() => base.Or_multiple(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task And_over_boolean() => base.And_over_boolean(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Or_over_boolean() => base.Or_over_boolean(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Xor_over_boolean() => base.Xor_over_boolean(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task And_or_over_boolean() => base.And_or_over_boolean(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task And_with_logical_and() => base.And_with_logical_and(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task And_with_logical_or() => base.And_with_logical_or(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Or_with_logical_and() => base.Or_with_logical_and(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Or_with_logical_or() => base.Or_with_logical_or(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/ComparisonOperatorTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/ComparisonOperatorTranslationsClickHouseTest.cs new file mode 100644 index 0000000..cac7454 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/ComparisonOperatorTranslationsClickHouseTest.cs @@ -0,0 +1,36 @@ +using Microsoft.EntityFrameworkCore.Query.Translations.Operators; +using Microsoft.EntityFrameworkCore.TestUtilities; +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Xunit; +using Xunit.Abstractions; +using System.Threading.Tasks; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Operators; + +public class ComparisonOperatorTranslationsClickHouseTest : ComparisonOperatorTranslationsTestBase +{ + public ComparisonOperatorTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Equal() => base.Equal(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task NotEqual() => base.NotEqual(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task GreaterThan() => base.GreaterThan(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task GreaterThanOrEqual() => base.GreaterThanOrEqual(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task LessThan() => base.LessThan(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task LessThanOrEqual() => base.LessThanOrEqual(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/LogicalOperatorTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/LogicalOperatorTranslationsClickHouseTest.cs new file mode 100644 index 0000000..b1cb6a5 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/LogicalOperatorTranslationsClickHouseTest.cs @@ -0,0 +1,36 @@ +using Microsoft.EntityFrameworkCore.Query.Translations.Operators; +using Microsoft.EntityFrameworkCore.TestUtilities; +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Xunit; +using Xunit.Abstractions; +using System.Threading.Tasks; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Operators; + +public class LogicalOperatorTranslationsClickHouseTest : LogicalOperatorTranslationsTestBase +{ + public LogicalOperatorTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task And() => base.And(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Or() => base.Or(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Not() => base.Not(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task And_with_bool_property() => base.And_with_bool_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Or_with_bool_property() => base.Or_with_bool_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Not_with_bool_property() => base.Not_with_bool_property(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/MiscellaneousOperatorTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/MiscellaneousOperatorTranslationsClickHouseTest.cs new file mode 100644 index 0000000..b47ccc9 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Operators/MiscellaneousOperatorTranslationsClickHouseTest.cs @@ -0,0 +1,24 @@ +using Microsoft.EntityFrameworkCore.Query.Translations.Operators; +using Microsoft.EntityFrameworkCore.TestUtilities; +using EntityFrameworkCore.ClickHouse.FunctionalTests.TestUtilities; +using Xunit; +using Xunit.Abstractions; +using System.Threading.Tasks; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Operators; + +public class MiscellaneousOperatorTranslationsClickHouseTest : MiscellaneousOperatorTranslationsTestBase +{ + public MiscellaneousOperatorTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Conditional() => base.Conditional(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Coalesce() => base.Coalesce(); +} diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateOnlyTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateOnlyTranslationsClickHouseTest.cs new file mode 100644 index 0000000..6e4bafb --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateOnlyTranslationsClickHouseTest.cs @@ -0,0 +1,71 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Translations.Temporal; +using Microsoft.EntityFrameworkCore.TestUtilities; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Temporal; + +public class DateOnlyTranslationsClickHouseTest : DateOnlyTranslationsTestBase +{ + public DateOnlyTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddDays() => base.AddDays(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddYears() => base.AddYears(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task DayOfWeek() => base.DayOfWeek(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Day() => base.Day(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task ToDateTime_with_complex_DateTime() => base.ToDateTime_with_complex_DateTime(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task ToDateTime_property_with_constant_TimeOnly() => base.ToDateTime_property_with_constant_TimeOnly(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Month() => base.Month(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddMonths() => base.AddMonths(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task ToDateTime_with_complex_TimeOnly() => base.ToDateTime_with_complex_TimeOnly(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Year() => base.Year(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task ToDateTime_constant_DateTime_with_property_TimeOnly() => base.ToDateTime_constant_DateTime_with_property_TimeOnly(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task DayNumber_subtraction() => base.DayNumber_subtraction(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task DayOfYear() => base.DayOfYear(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromDateTime_compared_to_property() => base.FromDateTime_compared_to_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromDateTime_compared_to_constant_and_parameter() => base.FromDateTime_compared_to_constant_and_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task ToDateTime_property_with_property_TimeOnly() => base.ToDateTime_property_with_property_TimeOnly(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task DayNumber() => base.DayNumber(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromDateTime() => base.FromDateTime(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateTimeOffsetTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateTimeOffsetTranslationsClickHouseTest.cs new file mode 100644 index 0000000..c9d8cba --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateTimeOffsetTranslationsClickHouseTest.cs @@ -0,0 +1,89 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Translations.Temporal; +using Microsoft.EntityFrameworkCore.TestUtilities; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Temporal; + +public class DateTimeOffsetTranslationsClickHouseTest : DateTimeOffsetTranslationsTestBase +{ + public DateTimeOffsetTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task UtcNow() => base.UtcNow(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Day() => base.Day(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Month() => base.Month(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task ToUnixTimeSecond() => base.ToUnixTimeSecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task ToUnixTimeMilliseconds() => base.ToUnixTimeMilliseconds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task TimeOfDay() => base.TimeOfDay(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nanosecond() => base.Nanosecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Date() => base.Date(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Milliseconds_parameter_and_constant() => base.Milliseconds_parameter_and_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Microsecond() => base.Microsecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Second() => base.Second(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddHours() => base.AddHours(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task DayOfYear() => base.DayOfYear(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Now() => base.Now(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Year() => base.Year(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Millisecond() => base.Millisecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Hour() => base.Hour(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddMinutes() => base.AddMinutes(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddMonths() => base.AddMonths(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddDays() => base.AddDays(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddYears() => base.AddYears(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddMilliseconds() => base.AddMilliseconds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Minute() => base.Minute(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddSeconds() => base.AddSeconds(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateTimeTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateTimeTranslationsClickHouseTest.cs new file mode 100644 index 0000000..b470157 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/DateTimeTranslationsClickHouseTest.cs @@ -0,0 +1,74 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Translations.Temporal; +using Microsoft.EntityFrameworkCore.TestUtilities; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Temporal; + +public class DateTimeTranslationsClickHouseTest : DateTimeTranslationsTestBase +{ + public DateTimeTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Hour() => base.Hour(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task New_with_parameters() => base.New_with_parameters(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task UtcNow() => base.UtcNow(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task subtract_and_TotalDays() => base.subtract_and_TotalDays(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task DayOfYear() => base.DayOfYear(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Month() => base.Month(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Today() => base.Today(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Parse_with_parameter() => base.Parse_with_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Minute() => base.Minute(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Date() => base.Date(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Year() => base.Year(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddYear() => base.AddYear(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task TimeOfDay() => base.TimeOfDay(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Millisecond() => base.Millisecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task New_with_constant() => base.New_with_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Day() => base.Day(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Second() => base.Second(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Parse_with_constant() => base.Parse_with_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Now() => base.Now(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/TimeOnlyTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/TimeOnlyTranslationsClickHouseTest.cs new file mode 100644 index 0000000..9bb93d3 --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/TimeOnlyTranslationsClickHouseTest.cs @@ -0,0 +1,68 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Translations.Temporal; +using Microsoft.EntityFrameworkCore.TestUtilities; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Temporal; + +public class TimeOnlyTranslationsClickHouseTest : TimeOnlyTranslationsTestBase +{ + public TimeOnlyTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nanosecond() => base.Nanosecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromDateTime_compared_to_property() => base.FromDateTime_compared_to_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Add_TimeSpan() => base.Add_TimeSpan(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Microsecond() => base.Microsecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Hour() => base.Hour(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Subtract() => base.Subtract(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromTimeSpan_compared_to_property() => base.FromTimeSpan_compared_to_property(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Minute() => base.Minute(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Order_by_FromTimeSpan() => base.Order_by_FromTimeSpan(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromDateTime_compared_to_parameter() => base.FromDateTime_compared_to_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Millisecond() => base.Millisecond(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromTimeSpan_compared_to_parameter() => base.FromTimeSpan_compared_to_parameter(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task IsBetween() => base.IsBetween(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Second() => base.Second(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task FromDateTime_compared_to_constant() => base.FromDateTime_compared_to_constant(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddMinutes() => base.AddMinutes(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task AddHours() => base.AddHours(); +} \ No newline at end of file diff --git a/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/TimeSpanTranslationsClickHouseTest.cs b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/TimeSpanTranslationsClickHouseTest.cs new file mode 100644 index 0000000..61cb66e --- /dev/null +++ b/test/EntityFrameworkCore.ClickHouse.FunctionalTests/Query/Translations/Temporal/TimeSpanTranslationsClickHouseTest.cs @@ -0,0 +1,35 @@ +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Query.Translations.Temporal; +using Microsoft.EntityFrameworkCore.TestUtilities; +using Xunit; +using Xunit.Abstractions; + +namespace EntityFrameworkCore.ClickHouse.FunctionalTests.Query.Translations.Temporal; + +public class TimeSpanTranslationsClickHouseTest : TimeSpanTranslationsTestBase +{ + public TimeSpanTranslationsClickHouseTest(BasicTypesQueryClickHouseFixture fixture, ITestOutputHelper testOutputHelper) + : base(fixture) + { + Fixture.TestSqlLoggerFactory.Clear(); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + } + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Milliseconds() => base.Milliseconds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Minutes() => base.Minutes(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Microseconds() => base.Microseconds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Seconds() => base.Seconds(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Hours() => base.Hours(); + + [ConditionalFact(Skip = ClickHouseSkipReasons.Tbd)] + public override Task Nanoseconds() => base.Nanoseconds(); +} \ No newline at end of file