From 6f27eb2c4c17db96c02a184428a9f4ab4cc67667 Mon Sep 17 00:00:00 2001 From: Benedek Farkas Date: Fri, 8 Mar 2024 11:41:17 +0100 Subject: [PATCH] Updating Orchard.Tests.ContentManagement.HqlExpressionTests.ShouldSortRandomly to decrease failure chance due to randomness --- .../ContentManagement/HqlExpressionTests.cs | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs b/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs index b58bf605e..05cdcb0e3 100644 --- a/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs +++ b/src/Orchard.Tests/ContentManagement/HqlExpressionTests.cs @@ -943,31 +943,29 @@ namespace Orchard.Tests.ContentManagement { } [Test] + // This is a potentially flaky test, but failure due to randomness is extremely unlikely. public void ShouldSortRandomly() { - _manager.Create("lambda", init => { - init.Record.IntegerStuff = 1; - }); - - _manager.Create("lambda", init => { - init.Record.IntegerStuff = 2; - }); - - _manager.Create("lambda", init => { - init.Record.IntegerStuff = 3; - }); - _session.Flush(); - - var result = _manager.HqlQuery().ForType("lambda").List(); - Assert.That(result.Count(), Is.EqualTo(3)); - - var firstResults = new List(); - - for (int i = 0; i < 10; i++) { - result = _manager.HqlQuery().Join(alias => alias.ContentPartRecord()).OrderBy(x => x.Named("civ"), order => order.Random()).List(); - firstResults.Add(result.First().As().Record.IntegerStuff); + var itemCount = 10; + for (int i = 0; i < itemCount; i++) { + _manager.Create("lambda", init => { + init.Record.IntegerStuff = i; + }); } - Assert.That(firstResults.Distinct().Count(), Is.GreaterThan(1)); + _session.Flush(); + + var items = _manager.HqlQuery().ForType("lambda").List(); + Assert.That(items.Count(), Is.EqualTo(itemCount)); + + var results = new List(); + + for (int i = 0; i < 10; i++) { + items = _manager.HqlQuery().Join(alias => + alias.ContentPartRecord()).OrderBy(x => x.Named("civ"), order => order.Random()).List(); + results.Add(string.Join("", items.Select(item => item.As().Record.IntegerStuff))); + } + + Assert.That(results.Distinct().Count(), Is.GreaterThan(1)); } [Test]