From 9c13eb380731e04ab34827a084189010d55e247e Mon Sep 17 00:00:00 2001 From: Shay Rojansky Date: Sat, 1 Aug 2020 21:07:00 +0300 Subject: [PATCH] Fix some non-deterministic tests --- .../Query/InheritanceRelationalQueryTestBase.cs | 5 +++++ .../Query/TPTInheritanceQueryTestBase.cs | 6 +++++- .../Query/GearsOfWarQueryTestBase.cs | 2 +- .../Query/ManyToManyQueryTestBase.cs | 6 +++--- .../Query/GearsOfWarQuerySqlServerTest.cs | 1 + .../Query/IncompleteMappingInheritanceQuerySqlServerTest.cs | 3 --- .../Query/InheritanceQuerySqlServerTest.cs | 3 --- .../Query/ManyToManyNoTrackingQuerySqlServerTest.cs | 2 +- .../Query/ManyToManyQuerySqlServerTest.cs | 2 +- .../Query/TPTInheritanceQuerySqlServerTest.cs | 3 --- 10 files changed, 17 insertions(+), 16 deletions(-) diff --git a/test/EFCore.Relational.Specification.Tests/Query/InheritanceRelationalQueryTestBase.cs b/test/EFCore.Relational.Specification.Tests/Query/InheritanceRelationalQueryTestBase.cs index a102aebd8a2..b55262bfac4 100644 --- a/test/EFCore.Relational.Specification.Tests/Query/InheritanceRelationalQueryTestBase.cs +++ b/test/EFCore.Relational.Specification.Tests/Query/InheritanceRelationalQueryTestBase.cs @@ -3,6 +3,8 @@ using System; using System.Linq; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.TestModels.InheritanceModel; using Microsoft.EntityFrameworkCore.TestUtilities; using Xunit; @@ -62,6 +64,9 @@ join keylessanimal in queryTypeQuery on animal.Name equals keylessanimal.Name Assert.Single(result); } + protected override void UseTransaction(DatabaseFacade facade, IDbContextTransaction transaction) + => facade.UseTransaction(transaction.GetDbTransaction()); + private string NormalizeDelimitersInRawString(string sql) => ((RelationalTestStore)Fixture.TestStore).NormalizeDelimitersInRawString(sql); diff --git a/test/EFCore.Relational.Specification.Tests/Query/TPTInheritanceQueryTestBase.cs b/test/EFCore.Relational.Specification.Tests/Query/TPTInheritanceQueryTestBase.cs index f38df098746..0b6eab93e46 100644 --- a/test/EFCore.Relational.Specification.Tests/Query/TPTInheritanceQueryTestBase.cs +++ b/test/EFCore.Relational.Specification.Tests/Query/TPTInheritanceQueryTestBase.cs @@ -4,9 +4,10 @@ // ReSharper disable InconsistentNaming using System; -using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore.Diagnostics; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.TestModels.InheritanceModel; using Xunit; @@ -48,5 +49,8 @@ public virtual void Using_from_sql_throws() Assert.Equal(RelationalStrings.NonTPHOnFromSqlNotSupported("FromSqlInterpolated", typeof(Bird).Name), message); } + + protected override void UseTransaction(DatabaseFacade facade, IDbContextTransaction transaction) + => facade.UseTransaction(transaction.GetDbTransaction()); } } diff --git a/test/EFCore.Specification.Tests/Query/GearsOfWarQueryTestBase.cs b/test/EFCore.Specification.Tests/Query/GearsOfWarQueryTestBase.cs index d5766d59a2e..683d848146c 100644 --- a/test/EFCore.Specification.Tests/Query/GearsOfWarQueryTestBase.cs +++ b/test/EFCore.Specification.Tests/Query/GearsOfWarQueryTestBase.cs @@ -7753,7 +7753,7 @@ public virtual Task SelectMany_predicate_with_non_equality_comparison_with_Take_ return AssertQuery( async, ss => from g in ss.Set() - from w in ss.Set().Where(x => x.OwnerFullName != g.FullName).Take(3) + from w in ss.Set().Where(x => x.OwnerFullName != g.FullName).OrderBy(x => x.Id).Take(3) orderby g.Nickname, w.Id select new { g, w }, assertOrder: true, diff --git a/test/EFCore.Specification.Tests/Query/ManyToManyQueryTestBase.cs b/test/EFCore.Specification.Tests/Query/ManyToManyQueryTestBase.cs index 43ff83865d9..2832e66682d 100644 --- a/test/EFCore.Specification.Tests/Query/ManyToManyQueryTestBase.cs +++ b/test/EFCore.Specification.Tests/Query/ManyToManyQueryTestBase.cs @@ -270,13 +270,13 @@ public virtual Task Left_join_with_skip_navigation(bool async) join s in ss.Set() on t.TwoSkipShared.OrderBy(e => e.Id).FirstOrDefault().Id equals s.ThreeSkipFull.OrderBy(e => e.Id).FirstOrDefault().Id into grouping from s in grouping.DefaultIfEmpty() - orderby t.Key1, s.Key1 + orderby t.Key1, s.Key1, t.Key2, s.Key2 select new { t, s }, ss => from t in ss.Set() join s in ss.Set() on t.TwoSkipShared.OrderBy(e => e.Id).FirstOrDefault().MaybeScalar(e => e.Id) equals s.ThreeSkipFull.OrderBy(e => e.Id).FirstOrDefault().MaybeScalar(e => e.Id) into grouping from s in grouping.DefaultIfEmpty() - orderby t.MaybeScalar(e => e.Key1), s.MaybeScalar(e => e.Key1) + orderby t.MaybeScalar(e => e.Key1), s.MaybeScalar(e => e.Key1), t.Key2, s.Key2 select new { t, s }, assertOrder: true, elementAsserter: (e, a) => @@ -417,7 +417,7 @@ public virtual Task Select_skip_navigation_first_or_default(bool async) async, ss => from r in ss.Set() orderby r.Id - select r.CompositeKeySkipFull.OrderBy(e => e.Key1).FirstOrDefault(), + select r.CompositeKeySkipFull.OrderBy(e => e.Key1).ThenBy(e => e.Key2).FirstOrDefault(), assertOrder: true, entryCount: 12); } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs index 432db54bd79..2a552685bfd 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/GearsOfWarQuerySqlServerTest.cs @@ -7145,6 +7145,7 @@ CROSS APPLY ( SELECT TOP(3) [w].[Id], [w].[AmmunitionType], [w].[IsAutomatic], [w].[Name], [w].[OwnerFullName], [w].[SynergyWithId] FROM [Weapons] AS [w] WHERE ([w].[OwnerFullName] <> [g].[FullName]) OR [w].[OwnerFullName] IS NULL + ORDER BY [w].[Id] ) AS [t] ORDER BY [g].[Nickname], [t].[Id]"); } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/IncompleteMappingInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/IncompleteMappingInheritanceQuerySqlServerTest.cs index 6ec6e089eff..b6ba60e54c6 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/IncompleteMappingInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/IncompleteMappingInheritanceQuerySqlServerTest.cs @@ -539,9 +539,6 @@ WHERE [a0].[Discriminator] IN (N'Eagle', N'Kiwi') AND ([a0].[Name] = N'Great spo ORDER BY [a].[Species]"); } - protected override void UseTransaction(DatabaseFacade facade, IDbContextTransaction transaction) - => facade.UseTransaction(transaction.GetDbTransaction()); - private void AssertSql(params string[] expected) => Fixture.TestSqlLoggerFactory.AssertBaseline(expected); } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceQuerySqlServerTest.cs index 1e33118ff32..5cab48f5528 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/InheritanceQuerySqlServerTest.cs @@ -515,9 +515,6 @@ FROM [Animals] AS [a0] ORDER BY [a].[Species]"); } - protected override void UseTransaction(DatabaseFacade facade, IDbContextTransaction transaction) - => facade.UseTransaction(transaction.GetDbTransaction()); - private void AssertSql(params string[] expected) => Fixture.TestSqlLoggerFactory.AssertBaseline(expected); } diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs index fc6bf143631..8d856227285 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyNoTrackingQuerySqlServerTest.cs @@ -554,7 +554,7 @@ FROM [EntityThrees] AS [e] LEFT JOIN ( SELECT [t].[Key1], [t].[Key2], [t].[Key3], [t].[Name], [t].[ThreeId], [t].[CompositeId1], [t].[CompositeId2], [t].[CompositeId3] FROM ( - SELECT [e0].[Key1], [e0].[Key2], [e0].[Key3], [e0].[Name], [j].[ThreeId], [j].[CompositeId1], [j].[CompositeId2], [j].[CompositeId3], ROW_NUMBER() OVER(PARTITION BY [j].[ThreeId] ORDER BY [e0].[Key1]) AS [row] + SELECT [e0].[Key1], [e0].[Key2], [e0].[Key3], [e0].[Name], [j].[ThreeId], [j].[CompositeId1], [j].[CompositeId2], [j].[CompositeId3], ROW_NUMBER() OVER(PARTITION BY [j].[ThreeId] ORDER BY [e0].[Key1], [e0].[Key2]) AS [row] FROM [JoinThreeToCompositeKeyFull] AS [j] INNER JOIN [EntityCompositeKeys] AS [e0] ON (([j].[CompositeId1] = [e0].[Key1]) AND ([j].[CompositeId2] = [e0].[Key2])) AND ([j].[CompositeId3] = [e0].[Key3]) ) AS [t] diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs index 2f95c28b1a5..de0d46eae41 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/ManyToManyQuerySqlServerTest.cs @@ -386,7 +386,7 @@ FROM [JoinThreeToCompositeKeyFull] AS [j0] INNER JOIN [EntityThrees] AS [e2] ON [j0].[ThreeId] = [e2].[Id] WHERE (([e0].[Key1] = [j0].[CompositeId1]) AND ([e0].[Key2] = [j0].[CompositeId2])) AND ([e0].[Key3] = [j0].[CompositeId3]) ORDER BY [e2].[Id]) -ORDER BY [e].[Key1], [e0].[Key1]"); +ORDER BY [e].[Key1], [e0].[Key1], [e].[Key2], [e0].[Key2]"); } public override async Task Select_many_over_skip_navigation(bool async) diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/TPTInheritanceQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/TPTInheritanceQuerySqlServerTest.cs index a825e9d7705..6793caa0140 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/TPTInheritanceQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/TPTInheritanceQuerySqlServerTest.cs @@ -593,9 +593,6 @@ FROM [Animals] AS [a0] ORDER BY [a].[Species]"); } - protected override void UseTransaction(DatabaseFacade facade, IDbContextTransaction transaction) - => facade.UseTransaction(transaction.GetDbTransaction()); - private void AssertSql(params string[] expected) => Fixture.TestSqlLoggerFactory.AssertBaseline(expected); }