From 5f7a755665f0efde73dada683bfc4b9eae95756e Mon Sep 17 00:00:00 2001 From: Kyra Ramesh Krishna Date: Thu, 2 Apr 2026 10:34:25 -0400 Subject: [PATCH 1/4] add initial tests for uncovered sort definition extenstions methods --- .../SortDefinitionBuilderTests.cs | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs index a38f6d62207..768d6622276 100644 --- a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs +++ b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs @@ -154,6 +154,60 @@ public void MetaTextScore() Assert(subject.MetaTextScore("awesome"), "{awesome: {$meta: 'textScore'}}"); } + [Fact] + public void Ascending_with_field_and_expression_using_extension_methods() + { + var subject = CreateSubject(); + + var sort = subject.Ascending("FirstName") + .Ascending(x => x.LastName) + .Ascending(x => x.Age); + + Assert(sort, "{fn: 1, ln: 1, age: 1}"); + } + + [Fact] + public void Descending_with_field_and_expression_using_extension_methods() + { + var subject = CreateSubject(); + + var sort = subject.Descending("FirstName") + .Descending(x => x.LastName) + .Descending(x => x.Age); + + Assert(sort, "{fn: -1, ln: -1, age: -1}"); + } + + [Fact] + public void MetaSearchScoreAscending_using_extension_methods() + { + var subject = CreateSubject(); + + var sort = subject.Descending("FirstName").MetaSearchScoreAscending(); + + Assert(sort, "{fn: -1, unused: {$meta: 'searchScore', order: 1}}"); + } + + [Fact] + public void MetaSearchScoreDescending_using_extension_methods() + { + var subject = CreateSubject(); + + var sort = subject.Descending("FirstName").MetaSearchScoreDescending(); + + Assert(sort, "{fn: -1, unused: {$meta: 'searchScore'}}"); + } + + [Fact] + public void MetaTextScore_using_extension_methods() + { + var subject = CreateSubject(); + + var sort = subject.Ascending("FirstName").MetaTextScore("awesome"); + + Assert(sort, "{fn: 1, awesome: {$meta: 'textScore'}}"); + } + private void Assert(SortDefinition sort, string expectedJson) { var documentSerializer = BsonSerializer.SerializerRegistry.GetSerializer(); @@ -171,6 +225,12 @@ private class Person { [BsonElement("fn")] public string FirstName { get; set; } + + [BsonElement("ln")] + public string LastName { get; set; } + + [BsonElement("age")] + public int Age { get; set; } } } } From a3504e98d0f1b73a9f3637e3c6f294a521b256c6 Mon Sep 17 00:00:00 2001 From: Kyra Ramesh Krishna Date: Thu, 2 Apr 2026 10:42:55 -0400 Subject: [PATCH 2/4] separate field and expression tests --- .../SortDefinitionBuilderTests.cs | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs index 768d6622276..d7d23b6607b 100644 --- a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs +++ b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs @@ -155,27 +155,47 @@ public void MetaTextScore() } [Fact] - public void Ascending_with_field_and_expression_using_extension_methods() + public void Ascending_using_extension_methods() { var subject = CreateSubject(); - var sort = subject.Ascending("FirstName") - .Ascending(x => x.LastName) - .Ascending(x => x.Age); + var sort = subject.Descending("FirstName") + .Ascending("LastName"); - Assert(sort, "{fn: 1, ln: 1, age: 1}"); + Assert(sort, "{fn: -1, ln: 1}"); } [Fact] - public void Descending_with_field_and_expression_using_extension_methods() + public void Ascending_typed_using_extension_methods() { var subject = CreateSubject(); var sort = subject.Descending("FirstName") - .Descending(x => x.LastName) - .Descending(x => x.Age); + .Ascending(x => x.LastName); + + Assert(sort, "{fn: -1, ln: 1}"); + } + + [Fact] + public void Descending_using_extension_methods() + { + var subject = CreateSubject(); + + var sort = subject.Ascending("FirstName") + .Descending("LastName"); + + Assert(sort, "{fn: 1, ln: -1}"); + } + + [Fact] + public void Descending_typed_using_extension_methods() + { + var subject = CreateSubject(); + + var sort = subject.Ascending("FirstName") + .Descending("LastName"); - Assert(sort, "{fn: -1, ln: -1, age: -1}"); + Assert(sort, "{fn: 1, ln: -1}"); } [Fact] From 664a231bd733e6477d534ee697b2ab1d10168b5e Mon Sep 17 00:00:00 2001 From: Kyra Ramesh Krishna Date: Thu, 2 Apr 2026 10:44:06 -0400 Subject: [PATCH 3/4] actually make the change to descending --- tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs index d7d23b6607b..169e6ba28c3 100644 --- a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs +++ b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs @@ -193,7 +193,7 @@ public void Descending_typed_using_extension_methods() var subject = CreateSubject(); var sort = subject.Ascending("FirstName") - .Descending("LastName"); + .Descending(x => x.LastName); Assert(sort, "{fn: 1, ln: -1}"); } From 3bfbe0cac6fc49ee69f48b8af27955e09a4621a1 Mon Sep 17 00:00:00 2001 From: Kyra Ramesh Krishna Date: Wed, 8 Apr 2026 10:57:55 -0400 Subject: [PATCH 4/4] capitalize typed and remove unused property in Person --- tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs index 169e6ba28c3..cdf79db43c0 100644 --- a/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs +++ b/tests/MongoDB.Driver.Tests/SortDefinitionBuilderTests.cs @@ -166,7 +166,7 @@ public void Ascending_using_extension_methods() } [Fact] - public void Ascending_typed_using_extension_methods() + public void Ascending_Typed_using_extension_methods() { var subject = CreateSubject(); @@ -188,7 +188,7 @@ public void Descending_using_extension_methods() } [Fact] - public void Descending_typed_using_extension_methods() + public void Descending_Typed_using_extension_methods() { var subject = CreateSubject(); @@ -248,9 +248,6 @@ private class Person [BsonElement("ln")] public string LastName { get; set; } - - [BsonElement("age")] - public int Age { get; set; } } } }